Mengalih keluar Urutan Melarikan ANSI daripada Rentetan dalam Python
Apabila bekerja dengan rentetan yang diperoleh daripada arahan SSH, anda mungkin menghadapi urutan melarikan diri ANSI yang mengganggu operasi program anda. Untuk mengalih keluar urutan pelarian ini dan mengekstrak maklumat yang berkaitan daripada rentetan, anda boleh menggunakan teknik berikut menggunakan modul ungkapan biasa Python:
Kaedah Ungkapan Biasa
Anda boleh menggunakan ungkapan biasa berikut untuk mengenal pasti dan mengalih keluar jujukan pelarian ANSI daripada rentetan:
import re # 7-bit C1 ANSI sequences ansi_escape = re.compile(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])') result = ansi_escape.sub('', sometext)
regex ini menyasarkan kedua-duanya Urutan pelarian ANSI C1 7-bit dan 8-bit, termasuk kod Pengenalan Jujukan Kawalan (CSI) dan Select Graphic Rendition (SGR).
Contoh
Pertimbangkan perkara berikut rentetan dengan urutan pelarian ANSI:
'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'
Menggunakan regex di atas akan alih keluar urutan melarikan diri, meninggalkan anda dengan:
ls\r\nexamplefile.zip\r\n
Penjelasan Ungkapan Biasa
Dengan memadankan dan mengalih keluar jujukan melarikan diri ini, anda boleh mengekstrak teks yang diingini dengan berkesan daripada rentetan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengalih keluar Urutan Escape ANSI daripada Rentetan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!