Ich habe einen Unicode-String
u"\\uC3A9\\xe9" , den ich in einen von PCRE unterstützten regulären Ausdruck "\\x{c3a9}\\x{e9}"in Python umwandeln möchte.
Gibt es bereits ein Modul, das das macht?
Ich habe einen Unicode-String
u"\\uC3A9\\xe9" , den ich in einen von PCRE unterstützten regulären Ausdruck "\\x{c3a9}\\x{e9}"in Python umwandeln möchte.
Gibt es bereits ein Modul, das das macht?
Ich bin mir keiner Module bewusst, um dies zu tun, aber hier ist eine mögliche Lösung:
import re
def pcre_escape_repl(match):
char = match.group(0)
if ord(char) in range(32, 127):
# Wenn dies ein druckbarer ASCII-Zeichen ist, verwenden Sie re.escape anstelle einer \x Fluchtsequenz
return re.escape(char)
# Ersetzen Sie nicht-ascii (oder nicht-druckbare) Zeichen durch eine \x Fluchtsequenz
return r'\x{' + hex(ord(char))[2:] + '}'
def pcre_escape(s):
regex = re.compile('.', re.DOTALL)
return regex.sub(pcre_escape_repl, s)
Beispiele:
>>> print pcre_escape(u"\uC3A9\xe9")
\x{c3a9}\x{e9}
>>> print pcre_escape("[foo]{bar}")
\[foo\]\{bar\}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.