2010-12-07 13 views
0

Wer irgendwelche Ideen, wie dieser Wert auf die einfachste mögliche Weise zu analysieren. Es muss schnell und schlank sein. Jemand hat Regex gesagt, aber ich habe sie noch nie benutzt. Können sie verwendet werden, um herauszufinden, was im Wert enthalten ist?Pars-out-Wert

name="org.apache.struts.taglib.html.TOKEN" value="THIS IS WHAT IS NEEDED" 
+1

Nehmen Sie die Beratung von der Person, die sagte, verwenden Sie Regex. Es ist eine geeignete Wahl für die Anforderung, die Sie beschreiben. name = \ "(. *?) \" \ s * value = \ "(? . *?) \" sollte Sei nah dran am regulären Ausdruck, den du für die Zeile brauchst, die du als Beispiel angegeben hast (ps; das ist .Net Regex Syntax) –

+1

Ja. (Ich bin mir sicher, dass du in wenigen Momenten viele gültige Antworten bekommst, also bin ich Ich werde dich nur ermutigen Nehmen Sie sich die Zeit, RegEx zu lernen - WUNSCH die Handvoll Stunden wert und nützlich in fast jeder Sprache, die Sie jemals benutzen werden. "Reguläre Ausdrücke beherrschen" ist das gewünschte Buch.) – Jay

Antwort

4
var reVal = new Regex("name=\"org.apache.struts.taglib.html.TOKEN\"\s+value=\"(?<value>.*?)\""); 
string value = reVal.Match(input).Groups["value"].Value; 

Und ich werde es auch erklären. Zuerst suchen wir nach dem Wort value mit einem " danach. Dann gibt (?<value> eine benannte Gruppe mit dem Namen "Wert" an. .*?\" Mittel alles zusammenpassen, um die erste“. Dann haben wir den Wert der Gruppe in der zweiten Zeile greifen.

Sie durch das Lesen der MSDN docs der Regex-Klasse beginnen konnte.

+0

Das ist es? Brillant! eine Chance auf einen Link für Regexs? – deanvmc

+0

+1 für named Capture-Gruppe –

+0

Ich behalte normalerweise eine Kopie von "Regular Expression Pocket Reference: Reguläre Ausdrücke für Perl, Ruby, PHP, Python, C, Java und .NET (Pocket Reference (O'Reilly))" praktisch. Oder ich google. Ich habe meine Antwort mit einem Link zu MSDN bearbeitet. Aber da draußen gibt es Tonnen von Regex-Samples und Tutorials. –

0
var tokenString = "name=\"org.apache.struts.taglib.html.TOKEN\" value=\"THIS IS WHAT IS NEEDED\""; 

Regex regex = new Regex("value=\"(.*)\""); 
var match = regex.Match(tokenString); 
if (match.Success) 
{ 
    Console.WriteLine(match.Groups[1]); 
}