我遇到了最奇怪的问题,我知道这一定是我忽略的一些微不足道的事情。我正在编写一个可以正常工作的简单正则表达式,直到我尝试命名我的捕获组。例如,您可以在http://www.regexr.com/上重现此内容。
要匹配的文本:
'1.2.3.4'
要使用的正则表达式:
'(.*?)'
这工作正常,它与版本号匹配。但是当我将正则表达式更改为:
'(?<VersionNumber>.*?)'
它不再匹配,regexrError: Invalid quantifier for target
在第一个问号上说。我还在我的 C# 应用程序中确认了相同的结果。我在这里做错了什么?
这是一个非常简单的例子,所以我不确定什么是不正确的。我确实找到了这篇文章,它描述了一个类似的问题,但答案只是为 OP 提供了要使用的新正则表达式,而不是实际告诉他为什么他的原始正则表达式无效。
更新
答案是 regexr.com 不再支持命名的捕获组,而且我一定是第一次在 C# 中搞砸了我的正则表达式,因为当我重写它时它运行良好。