Zastąp pierwsze wystąpienie łańcucha w Pythonie

116

Mam przykładowy ciąg. Jak mogę zamienić pierwsze wystąpienie tego ciągu w dłuższym ciągu na pusty ciąg?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')
znaki 34
źródło
Czego szukasz i wymieniasz? Co w tym jest url?
BoltClock
Chcę zamienić pierwsze wystąpienie „tekstu” w ciągu mojego
adresu

Odpowiedzi:

239

Funkcja string replace () doskonale rozwiązuje ten problem:

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

Zwraca kopię łańcucha s ze wszystkimi wystąpieniami starego podłańcucha zamienianego na nowy. Jeśli podano opcjonalny argument maxreplace, zastępowane są pierwsze wystąpienia maxreplace.

>>> u'longlongTESTstringTEST'.replace('TEST', '?', 1)
u'longlong?stringTEST'
virhilo
źródło
20

Użyj re.subbezpośrednio, pozwala to określić count:

regex.sub('', url, 1)

(Zauważ, że kolejność argumentów replacement, originala nie odwrotnie, jak mogłoby być podejrzane.)

Konrad Rudolph
źródło