在正则表达式(python3)中,我有一个16位数字的输入。
我需要检查数字,以便没有4个连续数字相同
1234567890111234 ------>有效
1234 5555 67891234 ------>无效
答案 0 :(得分:-1)
您可以在字符串中搜索匹配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
匹配,并进一步确保有三个相同的字符,在{3}
上使用量词\1
。这可确保匹配的4个字符相同。