Ein äquivalent zu string.ascii_letters für unicode-strings in python 2.x?
In der "string" - Modul der standard-Bibliothek,
string.ascii_letters ## Same as string.ascii_lowercase + string.ascii_uppercase
ist
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Gibt es eine ähnliche Konstante, welche die würde alles beinhalten, was als ein Buchstabe im unicode?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erstellen Sie Ihre eigene Konstante Unicode groß-und Kleinbuchstaben mit:
Dies macht eine string-2153 Zeichen lang sein (schmal Python-Unicode-build). Für code wie
letter in unicode_letters
es wäre schneller, die Verwendung von einem Satz, statt:ud.category.c in ('Lu', 'Ll')
Gibt es keine Zeichenfolge, aber Sie können überprüfen, ob ein Zeichen ein Buchstabe mit der
unicodedata
- Modul, insbesondere über seinecategory()
Funktion.Ll
bedeutet "letter, lowercase".Lu
bedeutet "Brief", "Großbuchstaben".Nd
bedeutet "numeric", "Ziffer".Wäre das eine ziemlich massive konstant. Unicode umfasst derzeit über 100.000 verschiedene Charaktere. Die Antwort ist also Nein.
Die Frage ist, warum würden Sie es brauchen? Könnte es eine andere Art und Weise zu lösen, was auch immer Ihr problem ist mit dem Modul unicodedata, zum Beispiel.
Update: Sie können Dateien herunterladen, mit der alle unicode-Datenpunkt-Namen und andere Informationen von ftp://ftp.unicode.org/, und tun lädt interessante Sachen mit, die.
Wie bereits in früheren Antworten, der string wäre in der Tat Weg zu lange. So haben Sie zum Ziel (eine) Sprache(N).
[EDIT: ich erkannte, es war der Fall für meinen ursprünglichen Verwendungszweck, und für die meisten Anwendungen, die ich Schätze. Aber in der Zwischenzeit, Mark Tolonen gab eine gute Antwort auf die Frage, wie er aufgefordert wurde, so wählte ich seine Antwort, obwohl ich habe folgende Lösung]
Dies ist leicht getan mit der "locale" - Modul:
mit "Buchstaben", ein 117-Zeichen-lange unicode-string.
Anscheinend string.Buchstaben ist abhängig von der Standard-Codierung für die ausgewählte Sprache code, anstatt auf die Sprache selbst. Locale auf de_de oder de_DE oder de_de aktualisieren string.Buchstaben um den gleichen Wert (denn Sie sind alle codiert in ISO8859-1 Standard).
Wenn Sie eine Codierung für den Sprach-code (de_DE.UTF-8), die Standard-Kodierung verwendet werden, statt für string.Briefe. Dazu führen würde, dass ein UnicodeDecodeError, wenn Sie den rest der obige code.