Heim > Backend-Entwicklung > Python-Tutorial > Wie entferne ich ANSI-Escape-Sequenzen aus einem String in Python?

Wie entferne ich ANSI-Escape-Sequenzen aus einem String in Python?

Susan Sarandon
Freigeben: 2024-11-28 04:38:11
Original
317 Leute haben es durchsucht

How to Remove ANSI Escape Sequences from a String in Python?

Entfernen von ANSI-Escape-Sequenzen aus einem String in Python

Problem:

Sie haben ein Zeichenfolge, die ANSI-Escape-Sequenzen enthält, wie sie beispielsweise zur Farbhervorhebung in SSH-Befehlen verwendet werden. Diese Sequenzen beeinträchtigen die Funktionalität Ihres Programms und Sie müssen sie entfernen, um den zugrunde liegenden Text zu erhalten.

Lösung:

Eine effektive Möglichkeit, ANSI-Escape-Sequenzen aus einem zu entfernen string soll einen regulären Ausdruck verwenden. Das re-Modul von Python stellt die sub()-Methode bereit, die die übereinstimmenden Sequenzen durch eine leere Zeichenfolge ersetzen kann.

import re

ansi_escape = re.compile(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])')
cleaned_string = ansi_escape.sub('', original_string)
Nach dem Login kopieren

Dieser reguläre Ausdruck stimmt mit allen 7-Bit-ANSI-C1-Escape-Sequenzen überein. Es erfasst entweder eine Zwei-Byte-Sequenz, die mit einem Escape-Zeichen (ESC) beginnt, gefolgt von einem Steuerzeichen, oder ein einzelnes 8-Bit-Byte, das das Steuerzeichen darstellt. Durch Ersetzen dieser Übereinstimmungen durch eine leere Zeichenfolge entfernt die sub()-Methode effektiv die ANSI-Sequenzen.

Kurzversion:

cleaned_string = re.sub(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])', '', original_string)
Nach dem Login kopieren

Beispiel:

Gegeben sei die folgende Zeichenfolge:

ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m
Nach dem Login kopieren

Verwenden Sie das Obige Mit einem regulären Ausdruck erhalten Sie die bereinigte Zeichenfolge:

ls\r\nexamplefile.zip\r\n
Nach dem Login kopieren

Zusätzliche Hinweise:

  • Der reguläre Ausdruck deckt alle 7-Bit-ANSI-C1-Escape-Sequenzen ab, aber nicht die 8-Bit-C1-Escape-Sequenz-Öffner.
  • Wenn Sie 8-Bit-Codes verarbeiten müssen, ist ein etwas komplexerer regulärer Ausdruck geeignet erforderlich.
  • Weitere Informationen zu ANSI-Escape-Codes finden Sie in der ANSI-Escape-Codes-Übersicht auf Wikipedia oder im ECMA-48-Standard.

Das obige ist der detaillierte Inhalt vonWie entferne ich ANSI-Escape-Sequenzen aus einem String in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage