2010-12-07 11 views
0

N'importe qui a des idées pour analyser cette valeur de la manière la plus simple possible. Il doit être rapide et mince. Quelqu'un a dit regex mais je ne les ai jamais utilisés auparavant. Peuvent-ils être utilisés pour obtenir ce qui est à l'intérieur de la valeur?Analyser la valeur

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

Prenez les conseils de la personne qui a dit: utilisez Regex C'est un choix approprié pour l'exigence que vous décrivez name = \ "(. *?) \" \ s * value = \ "(? . *?) \" should être proche de l'expression régulière dont vous auriez besoin pour la ligne que vous avez donnée comme exemple. (ps, c'est la syntaxe .Net Regex) –

+1

Oui. (Je suis sûr que vous obtiendrez beaucoup de réponses valides en quelques instants, donc je suis juste pour vous encourager t o prenez le temps d'apprendre RegEx - WELL vaut la peine d'une poignée d'heures, et utile dans à peu près n'importe quelle langue que vous utiliserez jamais. "Mastering Regular Expressions" est le livre que vous voulez.) – Jay

Répondre

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

Et je vais vous expliquer aussi. Nous cherchons d'abord le mot value avec un " après. Ensuite (?<value> spécifie un groupe nommé avec le nom "valeur". .*?\" moyens correspondent tout à la première ». Ensuite, nous avalons la valeur du groupe dans la deuxième ligne.

Vous pouvez commencer par lire la MSDN docs de la classe Regex.

+0

C'est ça? Brillant! une chance d'un lien pour Regexs? – deanvmc

+0

+1 pour le groupe de capture nommé –

+0

Je garde généralement une copie de "Regular Expression Pocket Reference: Expressions régulières pour Perl, Ruby, PHP, Python, C, Java et .NET" (Pocket Reference (O'Reilly)) "pratique. Ou je google. J'ai édité ma réponse avec un lien vers MSDN. Mais il y a des tonnes d'exemples regex et des tutoriels là-bas. –

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]); 
}