Corrigir apenas uma letra unicode em Python re
Eu tenho uma string da qual quero extrair 3 grupos:
'19 janvier 2012' -> '19', 'janvier', '2012'
Month name poderia conter caracteres não ASCII, então[A-Za-z]
Nao funciona para mim
>>> import re
>>> re.search(ur'(\d{,2}) ([A-Za-z]+) (\d{4})', u'20 janvier 2012', re.UNICODE).groups()
(u'20', u'janvier', u'2012')
>>> re.search(ur'(\d{,2}) ([A-Za-z]+) (\d{4})', u'20 février 2012', re.UNICODE).groups()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'
>>>
Eu poderia usar\w
mas corresponde a dígitos e sublinhado:
>>> re.search(ur'(\w+)', u'février', re.UNICODE).groups()
(u'f\xe9vrier',)
>>> re.search(ur'(\w+)', u'fé_q23vrier', re.UNICODE).groups()
(u'f\xe9_q23vrier',)
>>>
Eu tentei usar[:alfa:, mas não está funcionando:
>>> re.search(ur'[:alpha:]+', u'février', re.UNICODE).groups()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'
>>>
Se eu pudesse de alguma forma igualar\w
sem[_0-9]
, mas eu não sei como. E mesmo se eu descobrir como fazer isso, existe um atalho pronto como[:alpha:]
que funciona em Python?