-1

我有一些正则表达式,我必须在其中捕获字符串中的所有匹配项并将它们推送到某个集合并遍历匹配项以做一些事情。

 Regex regx = new Regex(@"{{\w+}}");

            Match m = regx.Match(str);

            string sel = m.Value;
            string actualProp = sel.Substring(2, sel.Length - 4);

            str = Regex.Replace(str, actualProp, x);

我有前:字符串:{{name}} 是 {{name.child}}

所以我必须把所有两场比赛都收集起来,我不知道怎么解决plz.....

4

2 回答 2

0

尝试这样的事情:

Match m = regx.Match(str);
    var results = new List<string>();
    while (m.Success)
    {
        results.Add(m.Value);
        m = m.NextMatch();
    }
于 2013-05-17T10:05:21.593 回答
0

您可以使用Matches方法Regex并遍历结果,请参阅此http://msdn.microsoft.com/en-us/library/e7sf90t3.aspx

[编辑] 然后访问匹配中的组(按索引或命名组):

Regex regex = new Regex("pattern");
foreach(Match match in regex.Matches("input"))
{
    string val = match.Groups[1].Value;
    string val2 = match.Groups["group_name"].Value;
}
于 2013-05-17T10:00:31.860 回答