如何匹配一个n位数的字符串,其中某个特定的数字如果重复,并且如果一起只能重复m次,则该数字匹配?

时间:2019-04-12 10:16:43

标签: python regex

我有一个10位数字的字符串,条件是连续重复的任何数字,只能重复4次,否则重复没有限制

示例:

1234567890 "match"
1213141516 "match"
1111234567 "match"
1233333456 "not match"

我该如何使用正则表达式?

3 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式,并根据是否找到捕获组来返回'match''not_match'

\1将指定您要对第一个捕获组重复{4}

def valid_string(s, lim=10):
    m = re.search(r'(\d)\1{4}', s)
    return 'match' if not m and len(s)==lim else 'not_match'

valid_string('1234567890')
# 'match'

valid_string('1111234567')
# 'match'

valid_string('1233333456')
# 'not_match'

答案 1 :(得分:0)

是否有特定原因需要您使用RegEx而不是包含以下内容的简单循环?

$(document).on('mouseenter', '.row', function () {
    var $this = $(this), row = $this.closest("tr");
    row.addClass("hover-color");
});

$(document).on('mouseleave', '.row', function () {
    var $this = $(this), row = $this.closest("tr");
    row.removeClass("hover-color");
});

答案 2 :(得分:0)

^(?!\d*(\d)\1{4})\d{10}$

如此处https://regex101.com/r/LX8zQs/1