2012-03-11 16 views
6

Così con la corrispondenza python regex, abbiamo il significato di \ w e altri colpiti dalla bandierina re.LOCALE:Come scoprire quali caratteri sono definiti come alfanumerico per un determinato locale

\ w

Quando i flag LOCALE e UNICODE non sono specificati, corrisponde a qualsiasi carattere alfanumerico e al carattere di sottolineatura; questo è equivalente al set [a-zA-Z0-9_]. Con LOCALE, corrisponderà all'insieme [0-9_] più qualsiasi carattere sia definito alfanumerico per le attuali impostazioni internazionali .

Quindi vogliamo scoprire quali caratteri sono definiti come alfanumerico per un determinato locale - dire che abbiamo fatto 'locale -a' e abbiamo una lista delle zone, e vogliamo trovare le informazioni per una delle elencata locale sul sistema. Qualsiasi metodo per trovare rapidamente le informazioni: uno snippet di codice Python o one-liner, comando di shell o materiale di riferimento in qualche luogo.

risposta

5

Utilizzare string.letters.

Esempio:

>>> import locale 
>>> import string 
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') 
'en_US.UTF-8' 
>>> string.letters 
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 
>>> locale.setlocale(locale.LC_ALL, 'de_DE') 
'de_DE' 
>>> string.letters 
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\xaa\xb5\xba\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' 
>>> 
+0

Grazie. Funziona bene. –

Problemi correlati