web-dev-qa-db-fra.com

Remplacer la première occurrence de string dans Python

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

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

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

Renvoie une copie de la chaîne s en remplaçant toutes les occurrences de sous-chaînes old 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'
199
virhilo

Utilisation re.sub directement, cela vous permet de spécifier un count:

regex.sub('', url, 1)

(Notez que l'ordre des arguments est replacement, original et non l'inverse, comme on pourrait le supposer.)

15
Konrad Rudolph