我试图让
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”的所有实例,包括其他单词中的实例。如何确保它只删除预期的实例?
您使用的正则表达式“ (?
重新导入
st1 = "dolphin fish ~shark eel octopus ~squid a"
pattern = r'\b(?<!~)\b\w{2,}\b'
result = re.sub(pattern, "", st1)
print(result)