在Python字符串中查找重复模式

3 投票
1 回答
1470 浏览
提问于 2025-04-17 23:04

假设我有这样一个字符串

s = '123123123'

我发现里面有'123'这个小部分在重复出现。

这里有一个新的字符串 = '1234'

这个小部分就是'1234',没有重复的部分。

再来看一个例子,s = '11111'

这个小部分就是'1'。

我该怎么用Python来实现这个呢?有没有什么提示?

1 个回答

3
strings = ['123123123', '1234', '11111']
import re
pattern, result = re.compile(r'(.+?)\1+'), []
for item in strings:
    result.extend(pattern.findall(item) or [item])
print result
# ['123', '1234', '1']

正则表达式可视化

Debuggex 演示

你可以在 这里 查看正则表达式的解释

撰写回答