Seite 1 von 1
Regulären Ausdruck für das Escapezeichen ???
Verfasst: Montag 13. Februar 2006, 13:29
von movies1978
Ich würd gern,
aus einer Ausgabe alle VT100 Kontrollsequenzen löschen. Daher muß ich das Escape Symbol finden. Wie escape ich also das Escapesymbol????
Interessant wäre auch direkt ein regulärer Ausdruck für alle VT100 Kontrollsequenzen
Mfg
Mathias
EDIT:
Gibt es evtl. eine Liste von (allen) allen Python Escape Sequenzen?
Verfasst: Montag 13. Februar 2006, 14:10
von N317V
Ich hab zwar keine Ahnung von VT100 Kontrollsequenzen (was ist das eigentlich?), aber normalerweise escaped man das Escape-Zeichen mit dem Escape-Zeichen. Also für das Escape-Zeichen '\ ' schreibt man '\\'. So ist es zumindest in jeder RegEx-Impementierung, die ich kenne.
Verfasst: Montag 13. Februar 2006, 14:19
von modelnine
Das Escape-Symbol ist ASCII 0x1b, also kannst Du einfach:
schreiben, da das Zeichen sonst kein Zeichen ist was ein syntaktisches Element eines regulären Ausdrucks wäre. "\x1b" ist die gewöhnliche Art und Weise ein Zeichen als Hexadezimalen Code-Point anzugeben in einem String.
Sonst, eine
rudimentäre Regex um fast alles rauszufiltern (bis auf die Define-Key Befehlssequenz):
Code: Alles auswählen
import re
VT100_RE = re.compile("\x1b(\\[[0-9;]*[a-zA-Z]|[a-zA-Z0-9\\(\\)])")
VT100_RE.sub("",mystring)
HTH!
Verfasst: Montag 13. Februar 2006, 14:52
von movies1978
Daaaaanke,
das klappt sehr gut. Es scheint auch mit \033 zu gehen, sind wohl synoym.
Mfg
Mathias
Verfasst: Montag 13. Februar 2006, 15:00
von N317V
movies1978 hat geschrieben:Es scheint auch mit \033 zu gehen, sind wohl synoym.
Das ist der Oktalwert des Hexadezimalwertes 0x1b des Dezimalwertes 27, der Binär als 11011 geschrieben wird.