如何使用正则表达式组查找多个事件?

时间:2010-07-14 12:49:39

标签: c# regex

为什么会出现以下代码:

  

'the'有1场比赛

而不是:

  

'the'有3场比赛

using System;
using System.Text.RegularExpressions;

namespace TestRegex82723223
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "C# is the best language there is in the world.";
            string search = "the";
            Match match = Regex.Match(text, search);
            Console.WriteLine("there was {0} matches for '{1}'", match.Groups.Count, match.Value);
            Console.ReadLine();
        }
    }
}

4 个答案:

答案 0 :(得分:41)

string text = "C# is the best language there is in the world.";
string search = "the";
MatchCollection matches = Regex.Matches(text, search);
Console.WriteLine("there was {0} matches for '{1}'", matches.Count, search);
Console.ReadLine();

答案 1 :(得分:14)

Regex.Match(String, String)

  

在指定的输入字符串中搜索第一次出现的指定正则表达式。

改为使用Regex.Matches(String, String)

  

在指定的输入字符串中搜索所有出现的指定正则表达式。

答案 2 :(得分:4)

Match返回第一个匹配,请参阅this了解如何完成剩下的工作。

您应该使用Matches代替。然后你可以使用:

MatchCollection matches = Regex.Matches(text, search);
Console.WriteLine("there were {0} matches", matches.Count);

答案 3 :(得分:3)

如果您想要返回多个匹配项,那么您应该使用Regex.Matches而不是Regex.Match