2009-10-14 77 views
5

我认为这将是一个非常愚蠢的问题,但是iam并没有成功地用一个句子中的角落树皮中的那些外来的东西来成功。如何获得那些在字符串中的尖括号内的子字符串

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

我需要获得子(如阵列)那些是角度brakets内

像strArray应包含{名称,部门,主旨名称}从上面给定的字符串

回答

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

或者用于格式化(填入空格) - 请参阅this example

+0

是的,这是一个很少的努力 – CRice 2009-10-14 06:41:47

0

使用String.IndexOf(“{”)获取第一个打开标记的索引和String.IndexOf(“}”)以获取第一个关闭标记的索引。然后使用其他字符串函数来获取它(子字符串,删除等)...虽然仍然有标签

8

注意在您的问题中使用var,我会假定您使用的是.NET 3.5。
一行下面的代码应该做的伎俩。

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

非常有趣。 – 2009-10-14 07:23:04

相关问题