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

问题描述 投票:0回答:1

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

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

1234567890111234 ------>有效 1234555567891234 ------>无效

regex python-3.x
1个回答
-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个字符相同。

© www.soinside.com 2019 - 2024. All rights reserved.