为了账号安全,请及时绑定邮箱和手机立即绑定

Python 在多行字符串中替换

Python 在多行字符串中替换

繁花如伊 2021-06-17 18:08:59
我的一个模块 (t_mesg.py) 有一个多行字符串:tm = """thisis currentlyatestmessage"""我将它导入到另一个模块中,我需要将字符串的某些部分替换为其他部分。但是,在导入时,换行符也会出现,因此tm.replace(...)不起作用。>>> from t_mesg import tm>>> tm'\nthis\nis \na\ntest\nmessage\n'如果我需要处理这个导入的字符串以将“是”更改为“不是”,我将如何处理,使字符串看起来像这样?tm = """thisis not currentlyatestmessage"""TL; DR - 如何在忽略换行符的情况下执行替换?
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

基本上你想在字符串中执行单词替换。您可以使用正则表达式和单词边界来做到这一点,以及是否使用换行符:


进口重新


s = "this\n is \n a good \n question"

s = re.sub(r"\bis\b","is not",s)

print(s)

结果:


this

 is not 

 a good 

 question

您可以使用此还原(这允许在两个单词之间出现更多换行符并保留它们)


s = re.sub(r"\bis\b(\s+)\bnot\b",r"is\1",s)

print(s)

印刷:


this

 is 

 a good 

 question

更进一步,你可以引入标点符号和其他非 alpha 的东西,使用\W你仍然可以管理:


s = "this\n is - not - \n a good \n question"

s = re.sub(r"\bis(\W+)not\b",r"is\1",s)

print(s)

打印(“不”已经消失,但它之前的破折号没有):


this

 is -  - 

 a good 

 question


查看完整回答
反对 回复 2021-06-22
  • 3 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号