我正在尝试正则表达式用单个字母替换出现的 n 个字母。应该足够简单,因为我知道正则表达式。Python 2.7.15 按预期工作:
>>> re.sub('x*', 'y', 'xxxxx')
'y'
>>> re.sub('x*', 'y', 'zxxxxxz')
'yzyzy'
但是 Python 3.7.2rc1 给了我:
>>> re.sub('x*', 'y', 'xxxxx')
'yy'
>>> re.sub('x*', 'y', 'zxxxxxz')
'yzyyzy'
使用'x+'as 模式可以部分解决该问题,但显然不适用于 0 长度匹配。