string.replace 替换所有出现的情况

问题描述 投票:0回答:1

我试图让

string.replace
替换除以某个字符开头的所有单词,例如〜,但是如果我有一个单词只有一个字母,那么该字母就会从我想保留的单词中删除

代码

import re

st1 = "dolphin fish ~shark eel octopus ~squid a"

for i in re.findall(r"\b(?<!~)\w+", st1):
    st1 = st1.replace(i, "")

print(st1)

我想要发生的事情:

输入:

"dolphin fish ~shark eel octopus ~squid a"

输出:

"~shark ~squid"

发生了什么:

输入:

"dolphin fish ~shark eel octopus ~squid a"

输出:

"~shrk ~squid"

我认为发生这种情况是因为它替换了“a”的所有实例,包括其他单词中的实例。如何确保它只删除预期的实例?

python regex replace
1个回答
0
投票

您使用的正则表达式“ (?

重新导入

st1 = "dolphin fish ~shark eel octopus ~squid a"

pattern = r'\b(?<!~)\b\w{2,}\b'  

result = re.sub(pattern, "", st1)

print(result)
© www.soinside.com 2019 - 2024. All rights reserved.