【发布时间】:2018-06-16 05:29:18
【问题描述】:
在正则表达式(python3)中,我输入了 16 位数字。
我需要检查号码,以确保没有 4 个连续的数字相同
1234567890111234 ------>有效
1234555567891234 ------>无效
【问题讨论】:
-
哪种编程语言?
标签: regex python-3.x
在正则表达式(python3)中,我输入了 16 位数字。
我需要检查号码,以确保没有 4 个连续的数字相同
1234567890111234 ------>有效
1234555567891234 ------>无效
【问题讨论】:
标签: regex python-3.x
您可以在匹配连续4个相同字母的字符串中搜索模式(.)\1{3},如果re.search返回None,它是一个有效的字符串:
import re
lst = ['12345678901112', '12345555678912']
for x in lst:
print(x)
print('Valid: ', re.search(r'(.)\1{3}', x) is None)
#12345678901112
#Valid: True
#12345555678912
#Valid: False
这里(.)匹配一个普通的单个字符,并将其捕获为组1,我们可以稍后参考后面的字符与反向引用\1匹配,并进一步确保三个相同的字符,使用量词@ 987654326@\1。这样可以确保匹配的 4 个字符相同。
【讨论】: