以前测试过的正则表达式现在不工作,但在正则表达式测试器中工作

Previously tested Regex is not working now, but works in Regex Tester

我有以下内容:

        var exp = new Regex("(.+):(.+)-(.+)");
        var matches = exp.Matches("AR1:CP1-CP2");

当我去 http://regexstorm.net/tester 时,这有效:

而且我确定我有一些测试代码可以正常工作...但是现在当我 运行 它在我的 C# 应用程序中时(这是上面的确切代码)我得到一个匹配,输入字符串,然后我后来的代码崩溃了。

我今天在 VS 2015 上编写代码,而不是我编写代码时使用的 VS2013,但除此之外我不知所措。谁能解决这个问题?

当然你会得到一个匹配项。正则表达式只匹配一次。然而,比赛本身有三个组(四个,算上整个比赛,隐式为组 0):

PS Home:\> [regex]::matches('AR1:CP1-CP2', '(.+):(.+)-(.+)')


Groups   : {AR1:CP1-CP2, AR1, CP1, CP2}
Success  : True
Captures : {AR1:CP1-CP2}
Index    : 0
Length   : 11
Value    : AR1:CP1-CP2