Welche Python-Regex passt zu allen Buchstaben, aber keine Zahlen? [unicode aware] [duplizieren]

8

Ich suche nach dem Äquivalent von [\w]&&[^\d] (Natürlich ist & amp; & amp; nicht ein Regex-Operator). Die Regex muss NUR Wörtern entsprechen, die aus UTF8 "alphabetischen" Zeichen bestehen. Hat jemand irgendwelche Ideen?

    
Thomas 03.04.2012, 06:06
quelle

5 Antworten

9

regex unterstützt Unicode-Eigenschaften, was bedeutet, dass Sie \p{L} damit verwenden können.

    
Ignacio Vazquez-Abrams 03.04.2012, 06:21
quelle
1

Wie Ignacio darauf hingewiesen hat, dass [a-zA-Z] Unicode-Zeichen nicht entspricht und keine Zeichenklasse für alle Unicode-Zeichen vordefiniert ist, möchten Sie vielleicht etwas Ähnliches wie das Folgende verwenden, was einfach und unkompliziert wäre

%Vor%

Bitte beachten Sie, dass string.letters vom Gebietsschema abhängig ist, und wenn Sie das lokale nicht wechseln möchten, was Sie natürlich mit locale.setlocale(locale.LC_CTYPE, code) tun können, sollte dies ein Kinderspiel sein.

    
Abhijit 03.04.2012 06:21
quelle
0

Nicht sicher über Regex, aber für Unicode können Sie möglicherweise das uncodedata -Modul verwenden; speziell die Funktion unicodedata.category()

    
Preet Kukreti 03.04.2012 06:13
quelle
0

AFAICT, es gibt keine Regex, die allen Buchstaben, nicht aber Ziffern oder Unterstrichen entspricht.

Sie könnten \w verwenden und dann prüfen, ob die Übereinstimmungen Buchstaben sind, die die Codepunkt-Eigenschaften verwenden:

%Vor%     
Raymond Hettinger 03.04.2012 06:20
quelle
-5

Verwenden Sie [a-zA-Z], um alle Buchstaben zu finden.

    
Steven You 03.04.2012 06:09
quelle

Tags und Links