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, '')

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'

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.)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.