我如何检查这些双重正则表达式

Posted

技术标签:

【中文标题】我如何检查这些双重正则表达式【英文标题】:How can I check these double Regex 【发布时间】:2019-04-14 06:26:20 【问题描述】:

我想检查电话号码是否有 8 位数字并且不是以零开头。我为此使用了^[1-9][0-9]7这个模式,我还想检查这8个数字是否像1111111177777777一样完全重复,为此我使用这个模式:(\w)\17,,分别检查数字是否'不匹配。

现在我想将这些 Regex 模式组合在一起,但我不能。我尝试以这种方式组合这些模式: (?=([1-9][0-9]7))(?:(?!(\w17,))) 但不幸的是它不起作用。

请注意,我必须使用一种 Regex 模式,并且需要将这两种模式合并为一个。

谁能帮帮我?

【问题讨论】:

【参考方案1】:

这只是您需要检查的第一个字符,它看起来像 - 在一个组中捕获它,然后对该组重复 7 次使用负前瞻,以确保整个字符串不是完全相同的数字,然后以\d7 匹配其他 7 位数字:

^([1-9])(?!\17)\d7$

https://regex101.com/r/DbTtAJ/1

(注意[0-9] 简化为\d

【讨论】:

以上是关于我如何检查这些双重正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

为啥正则表达式构造函数需要双重转义?

检查字符串是否为有效URL的最佳正则表达式是什么?

如何检查我的字符串是不是与正则表达式匹配 - Swift 3 [重复]

如何使用正则表达式捕获科学记数法中的减号?

正则表达式替换在 PHP 中不起作用

如何使用 PHP 和正则表达式检查输入值是不是正确? [复制]