我正在尝试使用 OR 运算符将 2 个正则表达式合并为 1 个:|
我有一个检查字母后跟 8 位数字是否匹配的方法:
Regex.IsMatch(s, "^[A-Z]\d{8}$")
我有另一个只检查 9 位数字的程序:
Regex.IsMatch(s, "^\d{9}$")
现在,而不是这样做:
If Not Regex.IsMatch(s, "^[A-Z]\d{8}$") AndAlso
Not Regex.IsMatch(s, "^\d{9}$") Then
...
End If
我想我可以简单地做:
If Not Regex.IsMatch(s, "^[A-Z]\d{8}|\d{9}$") Then
...
End If
显然我没有正确地将两者结合起来,而且显然我对正则表达式很糟糕。任何帮助将非常感激。
对于那些想知道的人,我确实看了一眼如何在正则表达式中组合 2 个及更多条件 https://stackoverflow.com/questions/9409171/how-to-combine-2-conditions-and-more-in-regex我仍然摸不着头脑。
The |
运算符具有很高的优先级,在您的原始正则表达式中将首先应用。您应该将两个正则表达式与分组括号组合起来,以明确优先级。如:
"^(([A-Z]\d{8})|(\d{9}))$"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)