替换 Python 中出现的特定字符串

Replacing specific occurrences of strings in Python

假设我有

examplestring='hello abcde hello xyz hello goodbye'.

我想将第二次出现的 'hello' 替换为 'bye',而不替换所有出现的 'hello'。

我该怎么做?

你可以试试这个,

re.sub(r'^(.*?hello.*?)hello', r'bye', s)

re.sub(r'^(.*?\bhello\b.*?)\bhello\b', r'bye', s)

你可以 split 然后 join:

In [1]: s = 'hello abcde hello xyz hello goodbye'

In [2]: words = s.split('hello')

In [3]: 'hello'.join(words[:2]) + 'bye' + 'hello'.join(words[2:])
Out[3]: 'hello abcde bye xyz hello goodbye'