2011-01-07 11 views
64

Mam próbkę napisu. Jak mogę zamienić pierwsze wystąpienie tego ciągu w dłuższy ciąg z pustym łańcuchem?Zastąp pierwsze wystąpienie ciągu w Pythonie

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

Czego szukasz i zamieniasz? Co jest w tym 'url'? – BoltClock

+0

Chcę zastąpić pierwsze wystąpienie "tekstu" w moim ciąg url – marks34

Odpowiedz

149

Ciąg replace() Funkcja, jeśli doskonale rozwiązuje ten problem:

string.replace (s, stary, nowy [, maxreplace])

Zwraca kopię ciągów s ze wszystkimi wystąpieniami podłańcucha, które zostały zastąpione nowymi. Jeśli podany zostanie opcjonalny argument maxreplace, zastępowane są pierwsze wystąpienia maxreplace.

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

Zastosowanie re.sub bezpośrednio, to pozwala określić count:

regex.sub('', url, 1) 

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

Powiązane problemy