我要检查电话号码是否包含8位数字,并且不以零开头。我为此使用了^[1-9][0-9]{7}
模式,也想检查一下这8个数字是否没有像11111111
或77777777
那样完全重复,为此我使用了以下模式:(\w)\1{7,}
,分别检查数字是否与之不符。
现在,我想将这些Regex模式组合在一起,但我不能。我尝试通过以下方式组合这些模式:
(?=([1-9][0-9]{7}))(?:(?!(\w1{7,})))
,但很遗憾,它不起作用。
请注意,我必须使用一种Regex模式,并且需要将这两种模式组合为一种。
有人可以帮我吗?
答案 0 :(得分:6)
这只是您需要检查的第一个字符,它看起来像-将其捕获到一个组中,然后对该组重复使用7次负向查找,以确保整个字符串不是全部相同,然后以\d{7}
以匹配其他7位数字:
^([1-9])(?!\1{7})\d{7}$
https://regex101.com/r/DbTtAJ/1
(请注意,[0-9]
简化为\d
)