我想写一个匹配的正则表达式:。
[\d]{6,}
(= 6位连续数字) 但那不匹配:
0[\d]{9}
(从0开始的10个连续数字)
显然我可以在2 C#条件下轻松完成。 if(Regex1.Match(pattern)&&!Regex2.Match(pattern)) 但在我的代码的特定情况下,我需要通过一次检查来评估它们。
我想知道是否有办法用一个正则表达式检查2个条件?
我需要的具体例子:
blabla
12345678 should be found
0123456789 should not be found
0123456 should be found
40666666666 should be found
bla
提前谢谢。
编辑:编辑了预期的匹配
答案 0 :(得分:2)
你必须以一种方式编写你的正则表达式,所有条件都在一个正则表达式中。
例如,您可以使用boundaries(\ b)来表示您的字符串后面跟您的数字和其他内容有其他内容(字母,符号或空格)以及{{3 (管道)给出"从0"开始的一些特殊指令:
\b(0\d{5,8}|0\d{10,}|[1-9]\d{5,})\b
示例:alternation
但是,正如有人指出的那样:请带上一个真实世界的例子。