如何在Python正则表达式中获取重叠字符串

3

我已经尝试过了

re.findall(r'(\d\*\*\d)','3*2**3**2*5**4**')

输出结果为['2**3', '5**4']。我期望的输出是['2**3','3**2', '5**4']。在re中需要做出什么改变?

1个回答

6

将你的正则表达式改为使用向前断言,这样在匹配时不会消耗字符串:

import re

string = '3*2**3**2*5**4**'
print(re.findall(r'(?=(\d\*\*\d))', string))
>> ['2**3', '3**2', '5**4']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接