2009-10-14 3 views
5

je pense que ce serait une question vraiment idiote, mais je ne suis pas réussi avec extrace srtings ceux dans les barres angulaires dans une phrase.comment obtenir des sous-chaînes ceux qui sont dans les parenthèses angulaires dans une chaîne

var str = "MR. {Name} of {Department} department stood first in {Subjectname}" 

-je obtenir les sous-chaînes (comme tableau) ceux qui sont dans les brakets angulaires

comme strArray doit contenir {Nom, Département, subjectName} de la chaîne donnée ci-dessus

Répondre

6
List<string> fields = new List<string>(); 
    foreach(Match match in Regex.Matches(str, @"\{([^\}]*)\}")) { 
     fields.Add(match.Groups[1].Value); 
    } 

Ou pour le formatage (en remplissant les blancs) - voir this example.

+0

ouais c'est beaucoup moins d'effort – CRice

0

Utilisez String.IndexOf ("{") pour obtenir l'index de la première balise ouverte et String.IndexOf ("}") pour obtenir l'index de la première balise de fermeture. Ensuite, utilisez les autres fonctions de chaîne pour l'extraire (sous-chaîne, supprimer etc.) ... alors qu'il y a encore des balises

8

En notant l'utilisation de var dans votre question, je suppose que vous utilisez .NET 3.5.
Le une ligne du code ci-dessous devrait faire l'affaire.

string[] result = Regex.Matches(str, @"\{([^\}]*)\}").Cast<Match>().Select(o => o.Value).ToArray(); 
+0

très intéressant. –

Questions connexes