python - Python 2 vs. 3 re.sub() 正则表达式替换差异
问题描述
我正在尝试正则表达式用单个字母替换出现的 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 长度匹配。
解决方案
推荐阅读
- javascript - 可以将数据表用作源数据吗?
- python - 我怎样才能得到这样的 Django ManyToManyField 列表?
- dart - 如何使类型推断在泛型方法中工作?
- jhipster - JHipster 7.1.0:无法生成网关,Provider reactor.blockhound.junit.platform.BlockHoundTestExecutionListener 无法实例化
- angular - 当我们尝试添加组件时,为什么 Angular cli 会出现以下错误?
- python-3.x - XLRDError:不支持的格式,或损坏的文件:预期的 BOF 记录;找到 b'Company
- groovy - 如何使用 Groovy/Java 从文本(字符串)中获取特定字符串?
- ios - RefreshControl 没有动画
- image - 用于将图像转换为图形神经网络的光谱聚类
- go - 指针接收器方法编译问题:无法在“MyObj{}”上调用指针方法