比如说aaabccc11fdsa
这个字符串,我要把aaa,ccc和11这种会重复两次以上的字符串匹配出来,该怎么办?如果正则表达式做不到的话,有其他什么PHP,Python内置函数可以做到吗?内置函数也没有的话只能手写算法了吗?
Python代码:
(\w)
匹配字母数字下划线即[a-zA-Z0-9_]((\w)\2)
匹配重复的字符,其中\2
匹配分组number是2的分组,因为最外层有圆括号,所以number是2的分组就是前面\w
匹配的字符((\w)\2+)
匹配重复出现2次或以上的字符
>>> import re
>>> str = 'aaabccc11fdsa'
>>> re.findall(r'((\w)\2+)', str)
[('aaa', 'a'), ('ccc', 'c'), ('11', '1')]
>>> [match[0] for match in re.findall(r'((\w)\2+)', str)]
['aaa', 'ccc', '11']
>>>
参考链接:Python字符串操作相关问题