Reemplazar la primera aparición de cadena en Python

116

Tengo una cadena de muestra. ¿Cómo puedo reemplazar la primera aparición de esta cadena en una cadena más larga con una cadena vacía?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')
marcas34
fuente
¿Qué estás buscando y reemplazando? ¿Qué hay en eso url?
BoltClock
Quiero reemplazar la primera aparición de 'texto' en mi cadena de URL
marks34

Respuestas:

239

La función string replace () resuelve perfectamente este problema:

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

Devuelve una copia de la cadena s con todas las apariciones de la subcadena antigua reemplazada por nueva. Si se proporciona el argumento opcional maxreplace, se reemplazan las primeras apariciones de maxreplace.

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

Usar re.subdirectamente, esto le permite especificar un count:

regex.sub('', url, 1)

(Tenga en cuenta que el orden de los argumentos es replacement, originalno al revés, como se puede sospechar.)

Konrad Rudolph
fuente