python - 如何在正则表达式中找到重叠模式?

标签 python regex python-2.7 python-3.x

假设我有一个像这样的字符串 123456789 。有没有办法从给定的字符串中找到所有可能的现有模式,如下所示

123423453456456756786789 使用 regex

我这样做了,但找不到解决方案:

import re
regex = r"[1-9]{4}"
test_string = "123456789"
print(re.findall(regex, test_str))

此输出:

['1234', '5678']

任何帮助对我来说都意义重大,谢谢

最佳答案

您可以尝试这个正则表达式:

\d(?=(\d{3}))

Regex Demo

示例源(Run here)

import re
regex = r"\d(?=(\d{3}))"
test_str = "123456789"
matches = re.finditer(regex, test_str)

for match in matches:
 print(match.group()+match.group(1));

关于python - 如何在正则表达式中找到重叠模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44924223/

相关文章:

python - PyCharm 错误,ModuleNotFoundError : No module named 'PyQt5'

python - 将视频帧读取为字节数据

javascript - 正则表达式无效 - 仅限 Google Chrome

javascript - 如何使用正则表达式在字符串中找到没有相邻重复项的第一个字符?

regex - 带有正则表达式的Hadoop fs -rm

python-2.7 - AttributeError: 'module' 对象没有属性 'update_settings' scrapy 1.0.5

python - 如何根据另一列的值替换一列的 NaN 值?

python - 无法找到 vcvarsall.bat 错误

Python/Pygame 使用类/函数创建开始屏幕

python-2.7 - 将 2D numpy.ndarray 转换为 pandas.DataFrame