Estoy intentando conseguir re.sub
para reemplazar un patrón especificado con un valor por ejemplore.sub que no trabaja para mí
for lines in f:
pattern='\${2}'+key[0]+'\${2}'
re.search(pattern,lines)
este retorno de la línea donde se encuentra el patrón. Por ejemplo, este es uno de los retornos de las pruebas si tiene
esta es una prueba $$ $$
El problema que estoy teniendo es cuando hago la siguiente
re.sub(pattern,key[1],lines)
no pasa nada. ¿Qué me estoy perdiendo? Para obtener más información key[0]=test
y key[1]=replace
, entonces lo que estoy tratando de hacer es que cada vez que se encuentre "$$ test $$" lo reemplace por "replace". No tengo problemas para encontrar "$$ test $$" pero por alguna razón re.sub
no lo está reemplazando.
Cuando necesite almacenar una barra diagonal inversa en una cadena, es mejor utilizar la barra diagonal inversa doble. En su caso, funciona de todos modos en Python porque el signo de dólar no tiene un significado especial cuando se le agrega una barra invertida y porque Python en ese caso mantiene ambos caracteres, pero en otros idiomas escribir ''\ $'' significará '' $ ''. Cuando alguien está leyendo una cadena y descubre que una barra invertida espera algo especial u otra barra invertida. Si necesita muchas barras diagonales inversas en una cadena, entonces debe utilizar una cadena sin formato ... – 6502
Para las personas que aterricen aquí con problemas generales de 're.sub', [asegúrese de que] (https://stackoverflow.com/questions/8813265/ why-doesnt-ignorecase-flag-re-i-work-in-re-sub) está pasando 're.IGNORECASE' como un argumento' flags = ', no el argumento' count'. – Noumenon