Estoy tratando de volcar datos de un archivo de exportación SQL con expresión regular. Para que coincida con el campo del contenido de la publicación, uso '(?P<content>.*?)
'. Funciona bien la mayor parte del tiempo, pero si el campo contiene la cadena de '\ n' la expresión regular no coincidiría. ¿Cómo puedo modificar la expresión regular para que coincida con ellos? ¡Gracias!Expresión regular: cómo hacer coincidir una cadena que contenga " n" (nueva línea)?
Ejemplo (estoy usando Python):
>>> re.findall("'(?P<content>.*?)'","'<p>something, something else</p>'")
['<p>something, something else</p>']
>>> re.findall("'(?P<content>.*?)'","'<p>something, \n something else</p>'")
[]
P.S. Aparentemente, todas las cadenas con '\' en el frente se tratan como caracteres de escape. ¿Cómo puedo decirle a regx que los trate como son?
Gracias! Además, solo por ejemplo, si digo '\ a' en la cadena, se convertirá en '\ x07'. ¿Hay alguna manera de mantenerlos como están? ¿O si no importa cuando los coloco en la base de datos? –
'\ x07' es solo una forma de que python represente al personaje con el código 7. Otra forma de representarlo es escribir' \ a'. La cadena realmente contiene solo un carácter en ambos casos. Puede confirmar esto marcando 'len (" \ x07 ")' y 'len (" \ a ")'. También intente comparar '" \ a "==" \ x07 "' o buscar '" a "' en '" \ a "': '" \ a ".find (" a ")' o para '" 0 " 'in' "\ x07" ':' "\ x07" .find ("0") '. Los resultados deben ser muy informativos. –
Hola Adam! Todavía presenta un problema, si la cadena de origen contiene \ 'El resultado se convertirá en', lo que romperá los comandos sql. Entonces, es importante tener la cadena "tal como está" –