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


116

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

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

Что вы ищете и заменяете? Что в этом url?
BoltClock

Я хочу заменить первое появление «текста» в строке моего URL-
адреса

Ответы:


239

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

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

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

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

20

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

regex.sub('', url, 1)

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.