2011-09-13 20 views
6

Supponiamo che io voglio abbinare una lettera minuscola seguita da una lettera maiuscola, avrei potuto fare qualcosa di similecaso di corrispondenza con le espressioni regolari in Python

re.compile(r"[a-z][A-Z]") 

Ora voglio fare la stessa cosa per le stringhe Unicode , cioè abbinare qualcosa come 'aÅ' o 'yÜ'.

provato

re.compile(r"[a-z][A-Z]", re.UNICODE) 

ma che non funziona.

Eventuali indizi?

risposta

6

Questo è difficile da fare con regex Python perché l'implementazione corrente non supporta scorciatoie di proprietà Unicode come \p{Lu} e \p{Ll}.

[A-Za-z] corrisponderà ovviamente solo lettere ASCII, indipendentemente dal fatto che l'opzione Unicode sia impostata o meno.

Così fino a quando il modulo re si aggiorna (o si installa il regex package attualmente in fase di sviluppo), vi sia bisogno di farlo a livello di codice (iterare attraverso la stringa e fare char.islower()/char.isupper() sui personaggi), o specificare tutto il codice unicode punti manualmente che probabilmente non vale lo sforzo ...

+0

Questo è stato utile. Devo occuparmi solo di lettere danesi. Quindi aggiungere 'æøå' e 'ÆØÅ' è probabilmente OK. – repoman

Problemi correlati