Maison > développement back-end > Tutoriel Python > Comment puis-je supprimer les séquences d'échappement ANSI des chaînes en Python ?

Comment puis-je supprimer les séquences d'échappement ANSI des chaînes en Python ?

Susan Sarandon
Libérer: 2024-12-06 16:36:15
original
549 Les gens l'ont consulté

How Can I Remove ANSI Escape Sequences from Strings in Python?

Suppression des séquences d'échappement ANSI des chaînes en Python

Lorsque vous travaillez avec des chaînes obtenues à partir de commandes SSH, vous pouvez rencontrer des séquences d'échappement ANSI qui interfèrent avec le fonctionnement de votre programme. Pour supprimer ces séquences d'échappement et extraire les informations pertinentes de la chaîne, vous pouvez utiliser les techniques suivantes à l'aide du module d'expressions régulières de Python :

Méthode d'expression régulière

Vous pouvez utiliser l'expression régulière suivante pour identifier et supprimer les séquences d'échappement ANSI d'une chaîne :

import re

# 7-bit C1 ANSI sequences
ansi_escape = re.compile(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])')
result = ansi_escape.sub('', sometext)
Copier après la connexion

Cette expression régulière cible à la fois les formats 7 bits et 8 bits. Séquences d'échappement ANSI C1, y compris les codes Control Sequence Introducers (CSI) et Select Graphic Rendition (SGR).

Exemple

Considérez la chaîne suivante avec des séquences d'échappement ANSI :

'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'
Copier après la connexion

L'application de l'expression régulière ci-dessus supprimera les séquences d'échappement, vous laissant avec :

ls\r\nexamplefile.zip\r\n
Copier après la connexion

Explication de l'expression régulière

  • x1B : correspond au code ASCII du caractère d'échappement (ESC).
  • [@-Z\-_] : correspond aux séquences d'échappement C1 7 bits qui ne sont pas CSI.
  • [[0-?]*[ -/]*[@-~] : correspond aux séquences d'échappement CSI.
  • `?* : correspond à zéro ou plusieurs occurrences de l'élément précédent. .
  • .* : correspond à tous les caractères qui viennent après la séquence d'échappement.

En faisant correspondre et en supprimant ces séquences d'échappement, vous pouvez extraire efficacement le texte souhaité de la chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal