我需要一个python正则表达式,它能够匹配任何数字出现一定次数的所有字符串(在本例中,5位数字中出现4次是我想要的结果)
例如,考虑以下列表:
["11211", "23424", "22323", "99991", "88988", "11122"]
我想要一个返回的正则表达式
["11211", "99991", "88988"]
因为在这三种情况下,数字中有一个数字出现了4次以上
我甚至不确定这是否是容易做到的,只有一个正则表达式,除了硬编码的数字从0-9,这似乎不是一个优雅的解决方案
下面是一个正则表达式,它匹配由5个数字字符串组成的列表中的4个1:
four1 = re.compile(".*1.*1.*1.*1.*")
但有没有比这两个更优雅的解决方案,不仅搜索4个1,而且搜索任何类型的4个,只要它们是相同数字的4倍
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.*")
...
谢谢你的帮助
您可以将此正则表达式与捕获组和反向引用一起使用:
RegEx Demo
正则表达式描述:
(\d)
:匹配单个数字并在组#1中捕获(?:
:启动非捕获组\d*?
:匹配0或更多数字\1
:返回对捕获组#1的引用,以确保匹配捕获组#1的重复数字)
:结束非捕获组{3}
:匹配上述非捕获组的3个实例代码:
输出:
相关问题 更多 >
编程相关推荐