简要介绍C#中正则表达式Regex的match和matches方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简要介绍C#中正则表达式Regex的match和matches方法相关的知识,希望对你有一定的参考价值。

如题,谁有经验的讲讲,在vs里标明它们分别返回match和matchcollection类型,不懂呢?一般怎么用?
比方说,我定义一个字符串string s="aaaa(bbb)aaaaaaaaa(bb)aaaaaa" ,写一个正则表达式来匹配括号中的内容:\(/w+\)
就可以用match方法得到匹配字符串result="(bbb)"或者"(bb)"
用matches方法得到字符串组result[2]="(bbb)","(bb)"
是这样吗?是的话代码怎么写呢?
解决了我再加50分

简要介绍C#中正则表达式Regex的match和matches方法       

string s = "aaaa(bbb)aaaaaaaaa(bb)aaaaaa";

string pattern = "\\\\(\\\\w+\\\\)";

Match result = Regex.Match(s,pattern);

MatchCollection results =  Regex.Matches(s,pattern);

然后你会看到

result.Value = (bbb);

results[0].Value = (bbb);

results[1].Value = (bb);

也就是match会捕获第一个匹配。而matches会捕获所有的匹配。

matchcollection result = Regex.matches(s)

match类型就是一个单独的捕获,matchcollection就是一组捕获。

扩展资料

RegEx是Visual Studio .NET中的正则表达式类 .NET中正则表达式的语法参见MSDN。该类包含许多方法,在此恕不赘述。

静态的Matches方法

这个方法的重载形式同静态的Match方法,返回一个MatchCollection,表示输入中,匹配模式的匹配的集合。

静态的IsMatch方法

此方法返回一个bool,重载形式同静态的Matches,若输入中匹配模式,返回true,否则返回false。

可以理解为:IsMatch方法,返回Matches方法返回的集合是否为空。

参考资料来源:百度百科-Regex函数

参考技术A 你的理解没错。你可以用以下程序验证:
string s = "aaaa(bbb)aaaaaaaaa(bb)aaaaaa";
string pattern = "\\(\\w+\\)";
Match result = Regex.Match(s,pattern);
MatchCollection results = Regex.Matches(s,pattern);
然后你会看到
result.Value = (bbb);
results[0].Value = (bbb);
results[1].Value = (bb);
也就是match会捕获第一个匹配。而matches会捕获所有的匹配。
——————————————————
matchcollection result = Regex.matches(s)
match类型就是一个单独的捕获,matchcollection就是一组捕获。本回答被提问者采纳

以上是关于简要介绍C#中正则表达式Regex的match和matches方法的主要内容,如果未能解决你的问题,请参考以下文章

C#正则表达式编程:Regex类用法

与 C# 控制台应用程序中的相同代码相比,Regex.Match 在 Unity 中返回不同/错误的结果

C#取括号里面的值,正则表达式怎么写

正则表达式Regex

C#正则表达式如何提取一段字符串中汉字后的数字

C# 正则表达式类 Match类和Group类