/ / Unicode-Regex in Python 3 (aus Python 2-Code) - Python, Regex, Python-3.x, Unicode, Python-2.x

Unicode-Regex in Python 3 (aus Python 2-Code) - Python, Regex, Python-3.x, Unicode, Python-2.x

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 № 1

Alle 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.