C#中Regex对象的Match()方法和Matches()方法的区别

利用Match类和MatchCollection类,可以获得通过一个正则表达式实现的每一个匹配的细节。

Match表示一次匹配,而MatchCollection类是一个Match对象的集合,其中的每一个对象都表示了一次成功的匹配。

1、Match()方法

Match()方法总是获取满足条件的第一个匹配,而不关心满足条件的匹配有多少个。

Match()方法都回一个Match对象,其中包含了匹配的各种细节。

一般,当我们确定只有一个符合条件的匹配或只需要第一个符合条件的匹配时,可以使用Match()。

示例:

1 // 要匹配的字符串内容
2 string content="(dfs45545)][(dkjsdjf63)";
3 // 正则表达式
4 string RegexStr = @"\(.*?\)";  
5 // 使用Match()匹配
6 Match m=Regex.Match(content, RegexStr);
7 // 结果:(dfs45545)

2、Matches()方法

Matches()方法可以得到MathCollection对象的一个集合。这个集合类中包含每一次正则表达式匹配的Match对象。

一般,当我们需要获取所有符合条件的匹配结果时,可以使用Matches()。

示例:

 1 // 要匹配的字符串内容
 2 string content="(dfs45545)][(dkjsdjf63)";
 3 // 正则表达式
 4 string RegexStr = @"\(.*?\)";  
 5 // 使用Matches()匹配
 6 MatchCollection mc = Regex.Matches(content, RegexStr);
 7 foreach (Match m in mc)
 8 {
 9     Console.WriteLine(m.Value);
10 }
11 // 结果:将输出(dfs45545)和(dkjsdjf63)两个结果
posted @ 2021-08-31 13:44  薄心之心  阅读(3977)  评论(0编辑  收藏  举报