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

时间:2017-07-05 10:52:04

标签: 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']

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

1 个答案:

答案 0 :(得分:3)

你可以试试这个正则表达式:

\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));