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

116

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

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')
marks34
источник
Что вы ищете и заменяете? Что в этом url?
BoltClock
Я хочу заменить первое появление «текста» в строке моего URL-
адреса

Ответы:

239

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

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

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

>>> u'longlongTESTstringTEST'.replace('TEST', '?', 1)
u'longlong?stringTEST'
virhilo
источник
20

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

regex.sub('', url, 1)

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

Конрад Рудольф
источник