Wenn Sie 2.x verwenden, versuchen Sie, die Regex-Zeichenfolge mit 'u' zu einer Unicode-Escape-Zeichenfolge zu machen. Da es sich um Regex handelt, empfiehlt es sich, Ihre Regex-Zeichenfolge mit 'r' zu einer Rohzeichenfolge zu machen. Außerdem ist es überflüssig, Ihr gesamtes Muster in Klammern zu setzen.
Es wird auch empfohlen, das Flag re.UNICODE / re.U / (? U) für Unicode-Regexe zu verwenden. Es betrifft jedoch nur Zeichenklassen-Aliase wie \ w oder \ b, von denen dieses Muster keine verwendet und dies auch nicht tun würde betroffen sein von.
@nosklo, warum funktionieren die geschweiften Klammern, die die Anzahl der Zeichen festlegen - {5} - nicht mit Unicode-Zeichen. Ich habe Probleme damit, aber das + funktioniert einwandfrei. Hast du eine Idee? Vielen Dank!
Securecurve
@securecurve Ich habe keine Ahnung, und ohne meine magische Kristallkugel gibt es keine Möglichkeit zu helfen. Ich habe es gerade getestet und es funktioniert gut für mich. Wenn es bei Ihnen nicht funktioniert, sollten Sie eine neue Frage stellen und Ihren Code und das Ergebnis angeben, das Sie erhalten.
Nosklo
3
reWenn Sie Python verwenden möchten , müssen Sie wissen, dass es keine Unicode-Zeicheneigenschaft (wie \p{L}) unterstützt. pypi.python.org/pypi/regex tut es.
laut
re.UNICODEFlagge ist nutzlos hier, da es nur eine Abkürzung Charakterklassen betrifft \w, \d, \s.
u
undr
Präfixe verketten können . Das ist ziemlich toll!SyntaxError: invalid syntax
in Python 3.6Verwenden Sie Unicode- Zeichenfolgen. Verwenden Sie das Flag re.UNICODE .
Lesen Sie den Artikel von Joel Spolsky mit dem Titel " Das absolute Minimum". Jeder Softwareentwickler muss unbedingt über Unicode und Zeichensätze Bescheid wissen (keine Ausreden!).
quelle
re
Wenn Sie Python verwenden möchten , müssen Sie wissen, dass es keine Unicode-Zeicheneigenschaft (wie\p{L}
) unterstützt. pypi.python.org/pypi/regex tut es.re.UNICODE
Flagge ist nutzlos hier, da es nur eine Abkürzung Charakterklassen betrifft\w
,\d
,\s
.