Suppression des séquences d'échappement ANSI d'une chaîne en Python
En Python, les séquences d'échappement ANSI peuvent constituer un obstacle lorsque vous travaillez avec des chaînes renvoyées par SSH commandes. Ces séquences, utilisées pour le formatage et le contrôle du curseur, peuvent perturber la lisibilité et la fonctionnalité de la chaîne. Pour résoudre ce problème et extraire le texte souhaité, explorons une solution utilisant des expressions régulières.
L'extrait Python suivant montre comment supprimer les séquences d'échappement ANSI d'une chaîne :
import re # Regex to capture ANSI C1 escape sequences ansi_escape = re.compile(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])') # Replace escape sequences with an empty string result = ansi_escape.sub('', string_with_ansi_sequences)
Le ansi_escape L'expression régulière cible les séquences d'échappement ANSI C1 de 7 et 8 bits. Il capture les séquences commençant par le caractère d'échappement (x1B) suivi soit d'une séquence de contrôle (par exemple, [@-Z\-_]), soit d'une séquence de contrôle introduite par [. La méthode sub() remplace ensuite toutes les correspondances par une chaîne vide, supprimant ainsi les séquences d'échappement.
Par exemple, la chaîne d'entrée suivante :
'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'
serait transformée en :
'ls\r\nexamplefile.zip\r\n'
Cette méthode vous permet de supprimer les séquences d'échappement ANSI et de récupérer le texte souhaité à partir des chaînes renvoyées par les commandes SSH, vous permettant ainsi de travailler avec le texte extrait sans formatage. interférence.
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!