0

以下の変数xを想像してPythonの質問があります。繰り返される1桁を見つけるのに役立つ正規表現を書きたいと思います。同様に、1は繰り返されませんが、2は2回言及され、3は3回言及されます。

x='1234328732'#a string of digits

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

これは私が思ったことですが、これは私にパターンのリターンを与えるだけです。上記は、繰り返しパターンがないため、何も返しません。しかし、

x='1231231234' 

123が返されますが、パターンを繰り返すことは私が望んでいることではありません。数字を繰り返したい。したがって、最初のxの場合は2、3になり、2番目のxの場合は1、2、3になります。

これは主にThxのREのアイデアを学ぶためのものです

4

1 に答える 1

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']
于 2012-10-29T07:53:02.747 に答える