我正在尝试在python中使用正则表达式来搜索"p1"
中的"p1 p2 p3 p10 p11 p12"
并将其替换为"hi"
以下是我的Python代码:
import re
x = "p1 p2 p3 p10 p11 p12"
data = "p1"
y = re.sub(data,'hi',x)
print (y)
当前输出→hi p2 p3 hi0 hi1 hi2
。
期望的输出→hi p2 p3 p10 p11 p12
。
请帮助我理解为什么我没有得到我想要的输出。
答案 0 :(得分:0)
您要做的是搜索data
而不是data+" "
。
import re
x = "p1 p2 p3 p10 p11 p12"
data = "p1"
y = re.sub(data+" ", "hi"+" ", x)
# to replace at the end too:
if x[-len(data):] == data:
y = y[:-len(data)] + "hi"
print (y) # hi p2 p3 p10 p11 p12
你正在取代" p1"在字符串中意味着" p11"的第一部分也被替换了。你应该一直在寻找" p1"这样你就不会取代" p11"。但是现在我们在它的末尾用空格替换了一些东西,我们需要让插入的字符串在末尾也有空格。否则,我们将删除空格。