在 Python 中替换所有第一个子字符串以外的所有字符?

2024-06-17 11:49:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根像下面这样的绳子

string = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"

现在我想用SELECT替换所有出现的SELECT,第一个用@@@SELECT替换,这样在结束字符串中是这样的

^{pr2}$

现在Pythonreplace()替换了所有出现的SELECT。在

string = string.replace("SELECT", "@@@SELECT)

所以绳子变成了

"@@@SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff"

我如何确保除了第一个实例之外,其他的都被替换了?在

注意:字符串可以有n个SELECT


Tags: 实例字符串stringselectreplace绳子pr2sdfdsf
3条回答

您可以使用方法partitionreplace。工作代码如下:

string = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
parts = string.partition("SELECT")  # returns a tuple
results = parts[0] + parts[1] + parts[2].replace("SELECT", "@@@SELECT")

print(results)

所以你会得到:

SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff

如果string = "Blabla is SELECT sdfdsf SELECT sdrrr SELECT 5445ff",您将得到:

Blabla is SELECT sdfdsf @@@SELECT sdrrr @@@SELECT 5445ff

你先跳过你的前三个字母怎么样?

string = string.replace("SELECT", "@@@SELECT)[3:]

附加“反向”替换步骤:

s = "SELECT sdfdsf SELECT sdrrr SELECT 5445ff"
res = s.replace("SELECT", "@@@SELECT").replace("@@@SELECT", "SELECT", 1)
print(res)

输出:

^{pr2}$

一个更复杂但确保目标词边界的方法可以如下所示:

^{3}$

相关问题 更多 >