Substitua a primeira ocorrência de string em Python

116

Eu tenho uma amostra de string. Como posso substituir a primeira ocorrência desta string em uma string mais longa com uma string vazia?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')
mark34
fonte
O que você está procurando e substituindo? O que há nisso url?
BoltClock
Desejo substituir a primeira ocorrência de 'texto' em minha string de url
marcas 34

Respostas:

239

A função string replace () resolve perfeitamente este problema:

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

Retorne uma cópia da string s com todas as ocorrências da substring antiga substituída por nova. Se o argumento opcional maxreplace for fornecido, as primeiras ocorrências de maxreplace serão substituídas.

>>> u'longlongTESTstringTEST'.replace('TEST', '?', 1)
u'longlong?stringTEST'
virhilo
fonte
20

Use re.subdiretamente, isso permite que você especifique um count:

regex.sub('', url, 1)

(Note-se que é da ordem dos argumentos replacement, originale não o contrário, como se poderia suspeitar.)

Konrad Rudolph
fonte