Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh mengalih keluar Urutan Escape ANSI daripada Rentetan dalam Python?

Bagaimanakah saya boleh mengalih keluar Urutan Escape ANSI daripada Rentetan dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-12-06 16:36:15544semak imbas

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

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

  • x1B: Memadankan kod ASCII untuk aksara Escape (ESC ).
  • [@-Z\-_]: Memadankan urutan pelarian C1 7-bit yang bukan CSI.
  • [[0-?]*[ -/]*[@-~]: Memadankan urutan pelarian CSI.
  • `?*: Memadankan sifar atau lebih kejadian bagi elemen sebelumnya.
  • .*: Padan dengan semua watak yang datang selepas pelarian jujukan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn