想要替换字符串中的某些单词,但要继续获得followinf结果:
字符串:"This is my sentence."
用户输入他们想要替换的内容:"is"
用户输入他们想要替换的内容:"was"
新字符串:"Thwas was my sentence."
我怎样才能确保它只替换"是"而不是它找到的任何字符串?
代码功能:
import string
def replace(word, new_word):
new_file = string.replace(word, new_word[1])
return new_file
非常感谢任何帮助,谢谢!
答案 0 :(得分:4)
使用正则表达式单词边界:
import re
print(re.sub(r"\bis\b","was","This is my sentence"))
比单纯的分裂更好,因为也使用标点符号:
print(re.sub(r"\bis\b","was","This is, of course, my sentence"))
给出:
This was, of course, my sentence
注意:不要跳过r
前缀,否则你的正则表达式会被破坏:\b
会被解释为退格。
答案 1 :(得分:1)
一个简单但不那么全面的解决方案(由Jean-Francios Fabre给出),不使用正则表达式。
' '.join(x if x != word else new_word for x in string.split())