Uso un tokenizer per dividere frasi francesi in parole e ha avuto problemi con le parole che contengono il carattere francese â
.Python estremamente enigmatico regex comportamento unicode
ho cercato di isolare il problema e alla fine si riduceva a questo semplice fatto:
>>> re.match(r"’", u'â', re.U)
>>> re.match(r"[’]", u'â', re.U)
<_sre.SRE_Match object at 0x21d41d0>
â
corrisponde un modello contenente ’
se è messo in un matcher insieme.
C'è qualcosa di sbagliato nella gestione di UTF-8 o si tratta di un bug?
La mia versione pitone è:
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
EDIT:
Hum, abbastanza embarassingly, sembra che la sostituzione del r
anteponendo il pattern con un u
risolve il problema.
mi chiedo perché la documentazione ufficiale utilizza ampiamente r
poi :((
'r' è corretto e importante. Dovresti ** aggiungere ** 'u' (vedi la risposta) invece di sostituire' r'. –
@ m.buettner: sì ho modificato prima di vedere la risposta. Sono andato avanti e ho controllato cosa 'r' e' u' fare, e in effetti entrambi sono importanti. Grazie :) – m09