正则表达式匹配不起作用

はると*_*はると 0 .net regex

我正在尝试将以下字符串分为三组.

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的正则表达式问题的图片

LBu*_*kin 5

所述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)