Заменить первое вхождение строки в 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
не противоположный, как можно было бы подозревать.)