我有一个如下所示的字符串
string = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
现在我想替换每一个出现的SELECT
除了第一个@@@SELECT
所以最后字符串看起来像这样
"SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff"
现在Pythonreplace()
替换所有出现的 SELECT。
string = string.replace("SELECT", "@@@SELECT)
所以字符串就变成了
"@@@SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff"
如何确保除了第一个实例之外,其他所有内容都被替换?
Note:该字符串可以出现 n 次SELECT
加上额外的“reversed” 替换步骤:
s = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
res = s.replace("SELECT", "@@@SELECT").replace("@@@SELECT", "SELECT", 1)
print(res)
输出:
SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff
更复杂但确保目标词边界的方法可能如下:
import re
def make_replacer():
rpl = ''
def inner(m):
nonlocal rpl
res = rpl + m.group()
rpl = '@@@'
return res
return inner
s = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
res = re.sub(r'\bSELECT\b', make_replacer(), s)
print(res) # SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)