Python正则表达式找到重复的数字

时间:2012-10-29 07:48:49

标签: python regex repeat digit

我有一个Python问题想象变量x如下。我想写一个正则表达式,帮助我找到任何重复的单个数字。如1不重复,但2提到两次,3是3次。

x='1234328732'#a string of digits

re.search(r'(\d+).*\1', x).group(1) 

这就是我的想法,但这只是让我回归模式。以上没有返回任何原因,因为没有重复的模式。但是如果

x='1231231234' 

它将返回123 但重复模式不是我想要的。我想重复数字。所以对于第一个x,它应该给2,3 对于第二个x,它应该给出1,2,3

这主要是为了学习RE的想法 THX

1 个答案:

答案 0 :(得分:6)

可能是这样的,使用Counter()

>>> import re
>>> from collections import Counter

>>> x='1234328732'
>>> c=Counter(re.findall(r'\d',x))
>>> [x for x in c if c[x]>1]
['3', '2']


>>> x='1231231234' 
>>> c=Counter(re.findall(r'\d',x))
>>> [x for x in c if c[x]>1]
['1', '3', '2']