猿问

Python 在多行字符串中替换

我的一个模块 (t_mesg.py) 有一个多行字符串:


tm = """

this

is currently

a

test

message

"""

我将它导入到另一个模块中,我需要将字符串的某些部分替换为其他部分。但是,在导入时,换行符也会出现,因此tm.replace(...)不起作用。


>>> from t_mesg import tm

>>> tm

'\nthis\nis \na\ntest\nmessage\n'

如果我需要处理这个导入的字符串以将“是”更改为“不是”,我将如何处理,使字符串看起来像这样?


tm = """

this

is not currently

a

test

message

"""

TL; DR - 如何在忽略换行符的情况下执行替换?


繁花如伊
浏览 234回答 3
3回答

莫回无

基本上你想在字符串中执行单词替换。您可以使用正则表达式和单词边界来做到这一点,以及是否使用换行符:进口重新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
随时随地看视频慕课网APP

相关分类

Python
我要回答