Remplacer la première occurrence de chaîne en Python

116

J'ai un exemple de chaîne. Comment puis-je remplacer la première occurrence de cette chaîne dans une chaîne plus longue par une chaîne vide?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')
marques34
la source
Que recherchez-vous et remplacez-vous? Qu'y a-t-il là-dedans url?
BoltClock
Je veux remplacer la première occurrence de «texte» dans ma chaîne d'URL
marks34

Réponses:

239

La fonction string replace () résout parfaitement ce problème:

string.replace (s, ancien, nouveau [, maxreplace])

Renvoie une copie de la chaîne s avec toutes les occurrences de la sous-chaîne old remplacées par new. Si l'argument optionnel maxreplace est donné, les premières occurrences de maxreplace sont remplacées.

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

À utiliser re.subdirectement, cela vous permet de spécifier un count:

regex.sub('', url, 1)

(Notez que l'ordre des arguments est replacement, originalnon l'inverse, comme on pouvait soupçonner.)

Konrad Rudolph
la source