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

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'

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.