Замініть перше виникнення рядка в Python


116

У мене є зразок рядка. Як я можу замінити перше виникнення цього рядка в більш довгій строці порожнім рядком?

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

Що ви шукаєте та заміняєте? Що в цьому url?
BoltClock

Я хочу замінити перше виникнення "тексту" в моєму рядку URL
позначки34

Відповіді:


239

Функція заміни рядка () чудово вирішує цю проблему:

string.replace (s, старий, новий [, 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.