正则表达式逻辑AND?

时间:2017-01-13 10:29:01

标签: regex

我想写一个匹配的正则表达式:。

[\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
提前谢谢。

编辑:编辑了预期的匹配

1 个答案:

答案 0 :(得分:2)

你必须以一种方式编写你的正则表达式,所有条件都在一个正则表达式中。

例如,您可以使用boundaries(\ b)来表示您的字符串后面跟您的数字和其他内容有其他内容(字母,符号或空格)以及{{3 (管道)给出"从0"开始的一些特殊指令:

\b(0\d{5,8}|0\d{10,}|[1-9]\d{5,})\b

示例:alternation

但是,正如有人指出的那样:请带上一个真实世界的例子。