如何获得字符串中的尖括号内的子串

时间:2009-10-14 06:32:49

标签: c# .net string

我认为这将是一个非常愚蠢的问题,但是对于那些在一个句子中有角度的咆哮中的夸张的说法,我并不成功。

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

我需要获得子串(如数组)那些在角度范围内

像strArray应该包含来自上面给定字符串的 {Name,Department,Subjectname}

3 个答案:

答案 0 :(得分:8)

注意到在您的问题中使用var,我将假设您使用的是.NET 3.5。
下面代码的一行应该可以解决问题。

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

答案 1 :(得分:6)

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

或格式化(填空) - 请参阅this example

答案 2 :(得分:0)

使用String.IndexOf(“{”)获取第一个打开标记的索引,使用String.IndexOf(“}”)获取第一个关闭标记的索引。然后使用其他字符串函数将其删除(子字符串,删除等)...同时还有标记