Заменить первое вхождение строки в Python

У меня есть пример строки. Как заменить первое вхождение этой строки в более длинную строку пустой строкой?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')

Ответ 1

Функция string replace() отлично решает эту проблему:

string.replace(s, old, new [, maxreplace])

Вернуть копию строки s, в которой все вхождения подстроки old заменены на new. Если задан необязательный аргумент maxreplace, заменяются первые вхождения maxreplace.

>>> u'longlongTESTstringTEST'.replace('TEST', '?', 1)
u'longlong?stringTEST'

Ответ 2

Используйте re.sub, это позволяет вам указать count:

regex.sub('', url, 1)

(Обратите внимание, что порядок аргументов replacement, original не противоположный, как можно было бы подозревать.)