首页 文章

正则表达式逻辑AND?

提问于
浏览
1

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

[\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

Thx提前 .

编辑:编辑了预期的匹配

1 回答

  • 2

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

    例如,您可以使用boundaries(\ b)来表示您的字符串在您的数字后面有其他内容(字母,符号或空格)以及您的数字前面的其他内容,以及alternation(管道)的功能,以提供一些特殊说明"starting with 0":

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

    示例:https://regex101.com/r/YIJh9g/4

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

相关问题