Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk mengalih keluar Urutan Melarikan ANSI daripada String dalam Python?

Bagaimana untuk mengalih keluar Urutan Melarikan ANSI daripada String dalam Python?

Susan Sarandon
Lepaskan: 2024-11-28 04:38:11
asal
317 orang telah melayarinya

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

Mengalih keluar Urutan Melarikan Diri ANSI daripada Rentetan dalam Python

Masalah:

Anda mempunyai rentetan yang mengandungi urutan pelarian ANSI, seperti yang digunakan untuk penonjolan warna dalam arahan SSH. Jujukan ini mengganggu kefungsian program anda dan anda perlu mengalih keluarnya untuk mendapatkan teks asas.

Penyelesaian:

Satu cara berkesan untuk mengalih keluar jujukan pelarian ANSI daripada rentetan adalah menggunakan ungkapan biasa. Modul semula Python menyediakan kaedah sub(), yang boleh menggantikan urutan yang dipadankan dengan rentetan kosong.

import re

ansi_escape = re.compile(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])')
cleaned_string = ansi_escape.sub('', original_string)
Salin selepas log masuk

Ungkapan biasa ini sepadan dengan semua jujukan pelarian ANSI C1 7-bit. Ia menangkap sama ada jujukan dua bait bermula dengan aksara melarikan diri (ESC) diikuti dengan aksara kawalan atau bait 8-bit tunggal yang mewakili aksara kawalan. Dengan menggantikan padanan ini dengan rentetan kosong, kaedah sub() mengalih keluar urutan ANSI dengan berkesan.

Versi Terkondensasi:

cleaned_string = re.sub(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])', '', original_string)
Salin selepas log masuk

Contoh:

Memandangkan perkara berikut rentetan:

ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m
Salin selepas log masuk

Menggunakan ungkapan biasa di atas, anda memperoleh rentetan yang dibersihkan:

ls\r\nexamplefile.zip\r\n
Salin selepas log masuk

Nota Tambahan:

  • Ungkapan biasa meliputi semua urutan pelarian ANSI C1 7-bit, tetapi bukan urutan pelarian C1 8-bit pembuka.
  • Jika anda perlu mengendalikan kod 8-bit, ungkapan biasa yang lebih kompleks diperlukan.
  • Untuk mendapatkan maklumat lanjut tentang kod melarikan diri ANSI, rujuk gambaran keseluruhan kod melarikan diri ANSI di Wikipedia atau piawai ECMA-48.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Urutan Melarikan ANSI daripada String dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan