2011-09-13 20 views
6

Supongamos que yo quiero para que coincida con una letra minúscula seguido de una letra mayúscula, lo que podía hacer algo así comocaso Matching cadenas Unicode sensibles con expresiones regulares en Python

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

Ahora quiero hacer lo mismo para las cadenas Unicode , es decir, que coincida con algo como 'aÅ' o 'yÜ'.

Probamos

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

pero eso no funciona.

¿Alguna pista?

Respuesta

6

Esto es difícil de hacer con Python regex porque la implementación actual no es compatible con atajos de propiedad Unicode como \p{Lu} y \p{Ll}.

[A-Za-z] por supuesto, solo coincidirá con las letras ASCII, independientemente de si la opción Unicode está configurada o no.

Así hasta que se actualice el módulo re (o se instala la regex package actualmente en desarrollo), que o bien hay que hacerlo mediante programación (iterar a través de la cuerda y hacer char.islower()/char.isupper() en los personajes), o especificar todo el código Unicode puntos manualmente que probablemente no vale la pena el esfuerzo ...

+0

Esto fue útil. Solo tengo que lidiar con las letras danesas. Entonces, agregar 'æøå' y 'ÆØÅ' probablemente sea correcto. – repoman

Cuestiones relacionadas