仅替换第一次出现的字符串?
Posted
技术标签:
【中文标题】仅替换第一次出现的字符串?【英文标题】:Replace first occurrence only of a string? 【发布时间】:2011-08-25 17:47:32 【问题描述】:我有这样的事情:
text = 'This text is very very long.'
replace_words = ['very','word']
for word in replace_words:
text = text.replace('very','not very')
我只想替换第一个“非常”或选择覆盖哪个“非常”。我正在对大量文本执行此操作,因此我想控制如何替换重复的单词。
【问题讨论】:
Replace first occurrence of string in Python的可能重复 【参考方案1】:text = text.replace("very", "not very", 1)
第三个参数是要替换的最大出现次数。 来自the documentation for Python:
string.replace(s, old, new[, maxreplace]) 返回字符串 s 的副本,其中所有出现的子字符串 old 都替换为 new。如果给出了可选参数 maxreplace,则替换第一个 maxreplace 出现。
【讨论】:
【参考方案2】:来自http://docs.python.org/release/2.5.2/lib/string-methods.html:
替换(旧的,新的[,计数]) 返回字符串的副本,其中所有出现的子字符串 old 都替换为 new。如果给出了可选参数计数,则只有 第一次出现的次数被替换。
我没试过,但我相信它有效
【讨论】:
【参考方案3】:text = text.replace("very", "not very", 1)
>>> help(str.replace)
Help on method_descriptor:
replace(...)
S.replace (old, new[, count]) -> string
Return a copy of string S with all occurrences of substring
old replaced by new. If the optional argument count is
given, only the first count occurrences are replaced.
【讨论】:
以上是关于仅替换第一次出现的字符串?的主要内容,如果未能解决你的问题,请参考以下文章