Skip to main content
 首页 » 编程设计

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

2024年02月27日42jiqing9006

我有以下内容:

        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