import re
a = "你在北京天安门:"
key1='北京'
rul5=re.compile(key1+r'+([\u4e00-\u9fa5]+):')
res5=rul5.findall(a)
res51=rul5.sub('中山路',a)
print(res5)
print(res51)
结果:
['天安门']
你在中山路
这是根据我代码简化的一个例子,findall是找出‘北京’后面的汉字‘天安门’,为什么sub会把‘北京’也替换了?需要怎么改?
python sub()为什么把括号外的字符也替换了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- GavinHaydy 2022-04-06 18:01关注
import re a = "你在北京天安门:" key1='北京' rul5=re.compile(key1+r'+([\u4e00-\u9fa5]+):') res5=rul5.findall(a) rul6 = re.compile(res5[0].encode('unicode_escape').decode('utf-8')) res51=rul6.sub('中山路',a) print(res5) print(res51)
不知道这是不是你想要的
rul5 匹配的是 '北京天安门' 所以你用rul5.sub会把'北京'一起替换掉 用res5查出来的字符串重新生成一个正则就行了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!