正则表达式:角色不应连续不超过3次

时间:2018-06-16 05:29:19

标签: regex python-3.x

在正则表达式(python3)中,我有一个16位数字的输入。

我需要检查数字,以便没有4个连续数字相同

1234567890111234 ------>有效
1234 5555 67891234 ------>无效

1 个答案:

答案 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个字符相同。