2008-11-13 8 views
1

Comment puis-je obtenir la valeur entre guillemets avec un RegExObtenir des valeurs entre guillemets

par exemple, je veux trouver tous les paramètres du test de la fonction

<html> 
    test("bla"); 
    print("foo"); 
    test("moo"); 
</html> 

Le résultat doit être { « bla » , "moo"}

Répondre

2

Si vous voulez juste l'un rgs à test, vous aurez besoin d'inclure dans la regex:

StringBuilder sb = new StringBuilder("{"); 
    bool first = true; 
    foreach (Match match in Regex.Matches(html, @"test\((""[^\""]*\"")\)")) 
    { 
     if(first) {first = false;} 
     else {sb.Append(',');} 
     sb.Append(match.Groups[1].Value); 
    } 
    sb.Append('}'); 
    Console.WriteLine(sb); 

de la question, j'utilise la détection de citation ici.

Sinon - si vous voulez juste les valeurs:

foreach (Match match in Regex.Matches(html, @"test\(""([^\""]*)\""\)")) 
    { 
     Console.WriteLine(match.Groups[1].Value); 
    } 

Le principal changement ici est que le groupe est maintenant à l'intérieur des guillemets.

1

modifier: ancien code levees et fait une version LINQ ...

var array = (from Match m in Regex.Matches(inText, "\"\\w+?\"") 
       select m.Groups[0].Value).ToArray(); 

    string json = string.Format("{{{0}}}", string.Join(",", array)); 
Questions connexes