2011-01-26 5 views
0

J'utilise ce regex en Python:python regex [: alpha:]

import re 

>>> ER = re.compile('^\w{0,30}$', re.U) 

>>> ER.sub('.', 'Maçã') 

>>>.... 

Mais une capture wanna seulement des lettres, [A-Z] ne fonctionne pas pour moi, parce que je besoin de lettres avec accent. Existe-t-il un moyen d'utiliser POSIX? [: alpha:], quelque chose comme ça ou une autre solution?

Merci!

Répondre

5

a modifié la regex - Que diriez-vous

ER = re.compile(u'^[^\W\d_]{1,30}$', re.U) 
s = ER.sub(u'.', u'Maçã') 

correspond u'Maçã » mais pas u'Maçã01.

+0

"Mais je ne veux attraper que des lettres" –

+0

@Ignacio: l'a corrigé - au lieu de \ w, ne correspond pas - (pas- \ w ou \ d) - pas de caractères non alphanumériques ou de chiffres. Merci pour l'information. –

+1

Ne pas oublier le trait de soulignement. –