【发布时间】:2016-07-26 23:16:59
【问题描述】:
这是我的 c# 正则表达式匹配测试用例:
AAA
BB
AAA+15d
BB-205w
我使用的模式是:@"^(AAA|BB)([\+|\-]\d+[d|w])*$",当我在一些 .net 正则表达式测试器中在线测试它时,它说匹配。但是当我在 c# 代码中运行它时,最后两个测试用例总是返回 false。模式有什么问题?
【问题讨论】:
-
显示您的 C# 代码。顺便说一句,您在字符类中不需要
|(更改)。[+-]和[dw]就可以了。 -
正则表达式确实有效,但可以稍微增强为
^(AAA|BB)([+-]\d+[dw])*$ -
var 模式 = @"^(AAA|BB)([+-]\d+[DW])*$"; bool isMatch =Regex.IsMatch(pattern, "AAA+180D", RegexOptions.IgnoreCase);
-
item, pattern order reversed - 所以这个问题应该被关闭,因为由于错字而无法重现。
-
查看dotnetfiddle.net 以演示工作示例。这有助于获得回复并更清楚地说明您的问题。