Sto provando a scaricare i dati da un file di esportazione SQL con un'espressione regolare. Per abbinare il campo del contenuto del post, io uso '(?P<content>.*?)
'. Funziona bene la maggior parte delle volte, ma se il campo contiene la stringa '\ n' l'espressione regolare non corrisponde. Come posso modificare l'espressione regolare per abbinarli? Grazie!Espressione regolare: come abbinare una stringa contenente " n" (newline)?
Esempio (sto 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. Apparentemente, tutte le stringhe con "\" nella parte anteriore sono trattate come caratteri di escape. Come posso dire a regx di trattarli così come sono?
Grazie! Inoltre, per esempio, se ho scritto '\ a' nella stringa, sarà convertito in '\ x07'. C'è un modo per tenerli così come sono? O se non importa quando li metto nel database? –
'\ x07' è solo un modo per Python per rappresentare il personaggio con il codice 7. Un altro modo per rappresentarlo è scrivere' \ a'. La stringa contiene in realtà solo un singolo carattere in entrambi i casi. Puoi confermare ciò controllando 'len (" \ x07 ")' e 'len (" \ a ")'. Prova anche a confrontare '" \ a "==" \ x07 "' o cercando '" a "' in '" \ a "': '" \ a ".find (" a ")' o per '" 0 " 'in' "\ x07" ':' "\ x07" .find ("0") '. I risultati dovrebbero essere molto istruttivi. –
Ciao Adam! Sta ancora creando un problema, se la stringa di origine contiene \ 'Il risultato sarà convertito in', che interromperà i comandi sql. Quindi è importante avere la stringa "così com'è" –