2009-10-14 12 views
5

これは本当にばかげた質問だと思いますが、文章内の角の括弧内の小説ではうまくいかないと思います。部分文字列を取得する方法は、文字列の山括弧の中にあります

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

iはStrArrayと等

は、上記の文字列から{名前、部署、サブジェクト名}を含まなければならない角度brakets内にあるもの(配列として)サブストリングを取得する必要があり

答えて

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

または書式設定(空白を記入) - this exampleを参照してください。

+0

はい、それは全体的にはるかに少ない努力 – CRice

0

最初の終了タグのインデックスを取得するためにString.IndexOf( "{")を使用し、最初の終了タグのインデックスを取得するためにString.IndexOf( "}")を使用します。次に、他の文字列関数を使用して(部分文字列、削除など)...タグが残っている間に

8

ご質問にvarを使用していることをご理解いただき、.NET 3.5を使用しているものとします。
以下のコードのの1行がこのトリックを行う必要があります。

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

非常に興味深いです。 –