2017-05-23 3 views
0

Ich arbeite mit der Selenium API in C#. Ich versuche ein Skript zu lesen und die benötigten Werte daraus zu bekommen.Finden Sie ein Array in einer Zeichenfolge

string attackable_villages = web.FindElement(By.XPath("//*[@id='content_value']/script[1]")).GetAttribute("innerHTML"); 
richTextBox1.Text = attackable_villages; 

Das Ergebnis erhalte ich:

result.scrollBound = { 
    x_min: 0, 
    x_max: 999, 
    y_min: 0, 
    y_max: 999 
}; 

result.tileSize = [53, 38]; 

result.screenKey = 'bf14559d'; 
result.topoKey = 4133874391; 

und viele mehr ..

Aber es ist dies:

result.thisiswhatiwant= [1value1, 1value2, 1value3, 1value4..], [2value1, 2value2, 2value3, ...], [...] 

Wie kann ich genau das Array ohne den Rest und spaltet alle Elemente nach "],"

Ich hoffe du kannst mir helfen!

+0

Warum ist dies mit PHP getaggt? – RiggsFolly

Antwort

1
// Split the script in its individual statements 
var splitArray = script.Split(';'); 
// Get the statement you're interested in 
var line = splitArray.Where(x => x.Contains("result.thisiswhatiwant")).First();   
// Remove all characters except numbers and commas, then split by comma  
var values = Regex.Replace(line, "[^0-9,]", string.Empty).Split(','); 

Tests mit diesem Eingangs:

string script = "test; result.thisiswhatiwant=[1,2,3]; three;"; 

gibt mir ein Array mit der Länge 3 (mit den Werten 1/2/3 respektive). Sie können auch Single(...) anstelle von Where(...).First() verwenden, wenn die Anweisung nur einmal vorkommt.

+0

und ich kann die Split-Methode wieder in meiner "Zeile" verwenden, um die Kategorien mit der gleichen '.Split (']')'? – TNation

+1

Ja, versuche mit den Möglichkeiten zu experimentieren, du solltest dorthin kommen. Sie können immer eine Regex.Match verwenden, wenn Sie mehr Flexibilität benötigen. – FDM

Verwandte Themen