Python 替换字符串的Replace命令条件
要替换字符串中的某个单词,但继续得到以下结果: 字符串:Python 替换字符串的Replace命令条件,python,string,for-loop,replace,conditional-statements,Python,String,For Loop,Replace,Conditional Statements,要替换字符串中的某个单词,但继续得到以下结果: 字符串:“这是我的句子。” 用户输入要替换的内容:“is” 用户键入要替换word的内容:“was” 新字符串:“这是我的句子。” 如何确保它只替换单词“is”而不是它找到的任何字符串 代码功能: import string def replace(word, new_word): new_file = string.replace(word, new_word[1]) return new_file 非常感谢您的帮助,谢谢 不使用正
“这是我的句子。”
用户输入要替换的内容:“is”
用户键入要替换word的内容:“was”
新字符串:“这是我的句子。”
如何确保它只替换单词“is”而不是它找到的任何字符串
代码功能:
import string
def replace(word, new_word):
new_file = string.replace(word, new_word[1])
return new_file
非常感谢您的帮助,谢谢 不使用正则表达式的简单但不全面的解决方案(如Jean-Francios Fabre给出的)
' '.join(x if x != word else new_word for x in string.split())
一个简单但不全面的解决方案(由Jean-Francios Fabre给出),不使用正则表达式
' '.join(x if x != word else new_word for x in string.split())
使用正则表达式字边界:
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
将被解释为退格。使用正则表达式单词边界:
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
将被解释为退格。很好。我搜索了一个重复项,但使用的是“替换”术语,而不是“查找”。我也是这样做的:。我认为“不是部分词”是这里的关键。至少现在“替换”部分已经涵盖:)@Tadhgmandald Jensen诀窍是用谷歌搜索关键词,只是每次我都忘了。所以这个引擎很好,因为你们可以用方括号过滤标签,但谷歌更适合一般搜索,99%的时候,SO答案会首先弹出!好发现。我搜索了一个重复项,但使用的是“替换”术语,而不是“查找”。我也是这样做的:。我认为“不是部分词”是这里的关键。至少现在“替换”部分已经涵盖:)@Tadhgmandald Jensen诀窍是用谷歌搜索关键词,只是每次我都忘了。所以这个引擎很好,因为你们可以用方括号过滤标签,但谷歌更适合一般搜索,99%的时候,SO答案会首先弹出!这不会保持原始的空白,因为您实际上是在用空格替换所有空白。另外,请在你的答案中提供一些信息,仅仅是一行代码并没有多大帮助。@Jean:完全同意。如果你不想使用正则表达式,谢谢你的提示和提示。和pythonic。这不会保持原来的空白,因为您正在有效地用空格替换所有空白。另外,请在你的答案中提供一些信息,仅仅是一行代码并没有多大帮助。@Jean:完全同意。如果你不想使用正则表达式,谢谢你的提示和提示。还有蟒蛇,非常感谢!这对我的节目来说太完美了@Jarred McMahan如果一个答案对你有用,那么请接受它,这样它就会被标记为“已回答”。非常感谢!这对我的节目来说太完美了@Jarred McMahan如果一个答案对你有效,那么请接受它,这样它就会被标记为“已回答”。