Ich versuche mein Python 2-Skript in Python 3 zu konvertieren. Wie machen wir Regex mit Unicode?
Dies ist, was ich in Python 2 hatte, das funktioniert Es ersetzt Anführungszeichen zu «und»:
text = re.sub(ur""(.*?)"", ur"«1»", text)
Ich habe einige wirklich komplexe, die das "ur" so leicht gemacht hat. Aber es funktioniert nicht in Python 3:
text = re.sub(ur"هsایم([].،:»)s])", ur"هu200cایم1", text)
Antworten:
1 für die Antwort № 1Alle Strings in Python3 sind standardmäßig Unicode. Entferne einfach die u
und dir sollte es gut gehen.
In Python2 sind Strings standardmäßig Listen von Bytes, also verwenden wir u
um sie als Unicode-Strings zu markieren.
0 für die Antwort № 2
Seit Python 3.0, enthält die Sprache einen Str-Typ, der enthält Unicode-Zeichen, dh jede mit "unicode rocks!" Erstellte Zeichenfolge "Unicode rockt!", oder die String-Syntax mit drei Anführungszeichen wird als gespeichert Unicode.
Unicode-HOWTO Dieses Dokument wird Ihnen helfen.
also, du willst nur, dass du alles in Python2 machst, und es wird funktionieren, keine zusätzlichen Effekte.