例如abc1abc2abc3abc
re.findall('abc\w*?abc','abc1abc2abc3abc',re.I)
结果为['abc1abc', 'abc3abc']
怎么把abc2abc也提取出来?
例如abc1abc2abc3abc
re.findall('abc\w*?abc','abc1abc2abc3abc',re.I)
结果为['abc1abc', 'abc3abc']
怎么把abc2abc也提取出来?
我google了下
stackoverflow上有人问过这个问题
https://stackoverflow.com/questions/5616822/python-regex-find-all-overlapping-matches
https://stackoverflow.com/questions/41045008/return-all-overlapping-patterns-using-re-findall-in-python
网站可能需要科学下才能上,我复制了关键的一段
import re
s = "123456789123456789"
matches = re.finditer(r'(?=(\d{10}))',s)
results = [int(match.group(1)) for match in matches]
# results:
# [1234567891,
# 2345678912,
# 3456789123,
# 4567891234,
# 5678912345,
# 6789123456,
# 7891234567,
# 8912345678,
# 9123456789]