我正在尝试将以下字符串分为三组.
0:0:Awesome:awesome
Run Code Online (Sandbox Code Playgroud)
那是" 0 "," 0 "和" 真棒:太棒了 "
使用此正则表达式:
^([0-9]+)\:([0-9]*)\:(.*)$
Run Code Online (Sandbox Code Playgroud)
它适用于在线正则表达式服务:http://rubular.com/r/QePxt57EwU
但似乎.NET不同意. 来自Visual Studio http://xs.to/image-3F8A_4BA916BD.jpg的正则表达式问题的图片
所述MatchCollection包含迭代地应用正则表达式到源串的结果.在您的情况下,只有一个匹配 - 所以结果是正确的.你拥有的是比赛中的多次捕获.这是你想要比较的 - 而不是匹配的数量.
MatchCollection matches = RegEx.Matches("0:0:Awesome:awesome",
"^([0-9]+)\:([0-9]*)\:(.*)$");
if( matches.Count != 1 && matches[0].Captures.Count != 3 )
//...
Run Code Online (Sandbox Code Playgroud)