如果我有一个字符串"这是",我想替换"是"到"是"。当我使用replace ("is", "was")
时,我得到了#34;那是",但我期待的是"这是",
有什么解决方案吗?
答案 0 :(得分:3)
您需要做一些比常规字符串替换更复杂的事情。我建议使用正则表达式(the re
module),并使用\b
转义序列来匹配字边界:
import re
re.sub(r"\bis\b", "was", "This is the best island!")
结果:'This was the best island!'
使用模式r"\bis\b"
而不仅仅是"is"
,您确保只有当它出现为独立单词时才匹配“是”(即没有数字,字母或下划线字符在原始字符串中与它直接相邻。)
以下是更多匹配和不匹配的示例:
re.sub(r"\bis\b", "was", "is? is_number? is, isn't 3is is, ,is, is. hyphen-is. &is")
结果:"was? is_number? was, isn't 3is was, ,was, was. hyphen-was. &was"