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

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'

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.