【发布时间】:2018-08-19 17:59:01
【问题描述】:
我需要一个 python 正则表达式,它能够匹配 any 数字出现一定次数的所有字符串(5 位数字中的 4 次是我想要的结果这个例子)。
例如,考虑这个列表:
["11211", "23424", "22323", "99991", "88988", "11122"]
我想要一个返回的正则表达式
["11211", "99991", "88988"]
因为在这三种情况下,有一个数字在数字中出现超过 4 次。
我什至不确定这是否可以仅使用一个正则表达式轻松实现,除了硬编码 0-9 的数字,这似乎不是一个优雅的解决方案。
这是一个匹配 5 个数字字符串列表中的四个 1 的正则表达式:
four1 = re.compile(".*1.*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.*")
...
感谢您的帮助。
【问题讨论】: