Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式查找重复数字_Python_Regex_Repeat_Digit - Fatal编程技术网

Python正则表达式查找重复数字

Python正则表达式查找重复数字,python,regex,repeat,digit,Python,Regex,Repeat,Digit,我有一个Python问题,想象一下下面的变量x。我想写一个正则表达式,帮助我找到任何重复的单个数字。Like 1不重复,但是2被提到两次,3是3次 x='1234328732'#a string of digits re.search(r'(\d+).*\1', x).group(1) 这就是我的想法,但这只是给了我一个模式的回归。由于不存在重复模式,因此上述操作不返回任何内容。但如果 x='1231231234' 它将返回123 但重复的模式不是我想要的。我想要重复的数字。所以对于第

我有一个Python问题,想象一下下面的变量x。我想写一个正则表达式,帮助我找到任何重复的单个数字。Like 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

可能是这样的:


可能是这样的,使用
计数器()


您可以完全删除正则表达式:
计数器(x)
。是的,但OP想要使用正则表达式。@Blender是的,我可以,但如果字符串也有其他字符,该怎么办。这可以完成工作,但您能解释它实际在做什么吗?@StudentOfScience Counter返回一个字典,其中键是传递给它的序列的唯一元素,值是该序列中该键的计数。因此,对于第二个
x
,计数器类似于
计数器({'1':3',3':3,'2':3',4':1})
,您可以迭代此字典以查找值>1。您可以完全摆脱正则表达式:
计数器(x)
。是的,但OP想要使用正则表达式。@Blender是的,我可以,但是,如果字符串也有其他字符该怎么办呢?这可以完成任务,但您能解释一下它实际上在做什么吗?@StudentOfScience Counter返回一个字典,其中键是传递给它的序列的唯一元素,值是该序列中该键的计数。所以对于第二个
x
,计数器类似于
计数器({'1':3,'3':3,'2':3,'4':1})
,您可以遍历此字典以查找值>1。
>>> 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']