简要介绍C#中正则表达式Regex的match和matches方法
比方说,我定义一个字符串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函数
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就是一组捕获。