Python3:从字符串的中间删除n,同时保留最后的一个



我是Python新手,遇到了这个问题。我有一个multiline string:


My name is ABCD n I am 20 years old n I like to travel
his name is XYZ n he is 20 years old n he likes to eat
your name is ABC n you are 20 years old n you like to play

我想用空格替换所有的n,但保持句子的原样。

期望的输出是:

My name is ABCD I am 20 years old I like to travel
his name is XYZ he is 20 years old he likes to eat
your name is ABC you are 20 years old you like to play

我试过:str.replace('n', ' '),但它给出:

My name is ABCD I am 20 years old I like to travel his name is XYZ he is 20 years old he likes to eat your name is ABC you are 20 years old you like to play

这不是我想要的。你能给我指路吗?提前谢谢你。

您可以使用正则表达式查找换行符(n)被空间包围s.

  • 正则表达式模式看起来像r"(sns)"

下面是示例代码:

import re
test_string = """
My name is ABCD n I am 20 years old n I like to travel
his name is XYZ n he is 20 years old n he likes to eat
your name is ABC n you are 20 years old n you like to play
"""
pattern = r"(sns)"
new_text = re.sub(pattern, "", test_string)
print(new_text)

输出:

My name is ABCD I am 20 years old I like to travel
his name is XYZ he is 20 years old he likes to eat
your name is ABC you are 20 years old you like to play