2009-10-14 11 views
5

penso che questa sarebbe una domanda davvero sciocca, ma iam non ha successo con srtings extratic quelli all'interno dei barkets angolari in una frase.come ottenere sottostringhe quelle che sono all'interno delle parentesi angolari in una stringa

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

ho bisogno di ottenere i sottostringhe (come array) queste sono all'interno delle parentesi angolari

come strArray dovrebbe contenere {Nome, attrezzature, Subjectname} da quanto sopra determinata stringa

risposta

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

Oppure per la formattazione (compilazione degli spazi vuoti) - vedere this example.

+0

sì, questo è molto meno sforzo – CRice

0

Utilizzare String.IndexOf ("{") per ottenere l'indice del primo tag aperto e String.IndexOf ("}") per ottenere l'indice del primo tag di chiusura. Quindi usa le altre funzioni di stringa per estrarlo (sottostringa, rimuovi ecc.) ... mentre ci sono ancora tag

8

Notando l'uso di var nella tua domanda, supporrò che tu stia usando .NET 3.5.
La riga una riga deve fare il trucco.

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

molto interessante. –

Problemi correlati