任何 数字出现一定的次数(在这个例子中,5位数字中的4次是我想要的结果)。
例如,请考虑以下列表:
["11211", "23424", "22323", "99991", "88988", "11122"]
["11211", "99991", "88988"]
因为在这三种情况下,有一个数字在数字中出现超过4次。
下面是一个正则表达式,它与5个数字字符串列表中的4个1匹配:
four1 = re.compile(".*1.*1.*1.*1.*")
four1 = re.compile("(.*1.*1.*1.*1.*")|(.*2.*2.*2.*2.*")| ...
或
four1 = re.compile(".*1.*1.*1.*1.*") four2 = re.compile(".*2.*2.*2.*2.*") ...
您可以将此正则表达式与捕获组和反向引用一起使用:
(\d)(?:\d*?\1){3}
RegEx Demo
正则表达式描述:
(\d)
(?:
\d*?
\1
)
{3}
代码:
import re arr = ["11211", "23424", "22323", "99991", "88988", "11122"] reg = re.compile(r'(\d)(?:\d*?\1){3}') for s in arr: if reg.search(s): print s
11211 99991 88988