如何使用正则表达式组查找多次出现?

Posted

技术标签:

【中文标题】如何使用正则表达式组查找多次出现?【英文标题】:How to find multiple occurrences with regex groups? 【发布时间】:2011-03-15 20:16:57 【问题描述】:

为什么会出现以下代码:

“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();
        
    

【问题讨论】:

【参考方案1】:
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();

【讨论】:

【参考方案2】:

Regex.Match(String, String)

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

请改用Regex.Matches(String, String)。

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

【讨论】:

【参考方案3】:

Match 返回 第一个 匹配项,请参阅this 了解如何获取其余部分。

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

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于如何使用正则表达式组查找多次出现?的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式查找字符模式

需要使用正则表达式找到2个字符串,并在它们之间插入多行文本并插入替换文本

Perl 中的正则表达式组:如何从正则表达式组中捕获与字符串中出现的未知数量/多个/变量匹配的元素到数组中?

Java 正则表达式捕获组

将 BeautifulSoup 4 的 `find_all` 与正则表达式一起使用时,如何访问正则表达式匹配捕获组?

正则表达式