Supongamos que tengo una cadena con un montón de cosas al azar en ella como las siguientes:Python encontrar subcadena entre ciertos caracteres utilizando expresiones regulares y reemplazar()
strJunk ="asdf2adsf29Value=five&lakl23ljk43asdldl"
Y estoy interesado en obtener la subcadena sentado entre ' Valor = 'y' & ', que en este ejemplo sería' cinco '.
puedo usar una expresión regular como la siguiente:
match = re.search(r'Value=?([^&>]+)', strJunk)
>>> print match.group(0)
Value=five
>>> print match.group(1)
five
¿Cómo es que match.group (0) es todo el asunto '= Valor de cinco' y el grupo (1) es sólo 'cinco'? ¿Y hay una manera para que solo obtenga 'cinco' como único resultado? (Esta pregunta se debe a mí sólo tener un asimiento tenue de expresiones regulares)
También voy a tener que hacer una sustitución en esta cadena, tales como las siguientes:
val1 = match.group(1)
strJunk.replace(val1, "six", 1)
que produce:
'asdf2adsf29Value=six&lakl23ljk43asdldl'
Teniendo en cuenta que planeo realizar las dos tareas anteriores (encontrar la cadena entre 'Value =' y '&', así como reemplazar ese valor) una y otra vez, me preguntaba si hay otras maneras más eficientes de buscar la subcadena y reemplazándolo en la cadena original. Estoy contento con lo que tengo, pero solo quiero asegurarme de no tomar más tiempo de lo que tengo que estar si hay mejores métodos.
La respuesta de Mahmoud Abelkader también funcionará, siempre y cuando se garantice que "=" y "&" no aparecerán en ningún otro lugar en strJunk. –