我正在尝试使 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)
我想要发生什么:
输入:
“海豚鱼~鲨鱼鳗 Octopus ~鱿鱼a”
输出:
“~鲨鱼~鱿鱼”
发生了什么:
输入:
“海豚鱼~鲨鱼鳗 Octopus ~鱿鱼a”
输出:
“~shrk~squid”
我认为发生这种情况是因为它替换了“a”的所有实例,包括其他单词中的实例。如何确保它只删除预期的实例?
最佳答案
我实际上建议在这里使用正则表达式查找所有方法:
st1 = "dolphin fish ~shark eel octopus ~squid a"
matches = re.findall(r'~\w+', st1)
output = " ".join(matches)
print(output) # ~shark ~squid
关于python - string.replace 替换所有出现的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77813986/