Ich habe eine Reihe von Wörtern in verschiedenen Sprachen (Englisch, Polnisch, Finnisch, Russisch usw.) und muss überprüfen, was von ihnen mit einem Großbuchstaben geschrieben wird.
Ich habe versucht, einen einfachen regulären Ausdruck zu verwenden: ^[A-Z]
, aber es passt nur zu lateinischen Buchstaben, dann habe ich die russischen Großbuchstaben hinzugefügt: ^[A-ZА-Я]
.
Aber viele Unicode-Buchstaben mit diakritischen Zeichen bleiben erhalten. Wie kann ich meinem Regex alle Großbuchstaben hinzufügen?
Es ist möglich, dies ohne Aufzählungen von Symbolen zu machen?
P.S. Ich weiß, wie man das in Ruby macht, aber jetzt benutze ich Python.
Wenn Sie eine Regex verwenden müssen, haben Sie zwei Möglichkeiten:
regex
und verwenden Sie \p{Lu}
class re
mit einer Zeichenklasse mit allen Großbuchstabenbereichen (entlehnt von XRegExp Bibliothek und etwas angepasst) Hier ist eine Lösung mit einer Regex, die alle Großbuchstaben enthält:
%Vor%Sehen Sie sich die IDEONE-Demo
anMit PyPi Regex-Modul ist es einfacher:
%Vor%In Python 2.x sollten Sie Folgendes verwenden:
%Vor%oder
%Vor% re
sieht aus wie masochizm, wenn Sie einfach word[0].isupper()
überprüfen können.
Sie können die Zeichenfolge mit der großgeschriebenen Version vergleichen, um festzustellen, ob sie großgeschrieben ist oder nicht:
%Vor%Beachten Sie, dass Sie in Python2 Unicode-Strings verwenden müssen, damit es korrekt funktioniert.
Tags und Links python regex python-3.x python-2.7