ホームページ > バックエンド開発 > Python チュートリアル > Python の文字列から ANSI エスケープ シーケンスを削除する方法

Python の文字列から ANSI エスケープ シーケンスを削除する方法

Patricia Arquette
リリース: 2024-11-27 12:20:12
オリジナル
903 人が閲覧しました

How to Remove ANSI Escape Sequences from Strings in Python?

Python の文字列から ANSI エスケープ シーケンスを削除する

Python では、SSH から返された文字列を操作するときに、ANSI エスケープ シーケンスが障害となる可能性があります。コマンド。これらのシーケンスは、書式設定やカーソル制御に使用され、文字列の可読性や機能性を損なう可能性があります。この問題に対処し、必要なテキストを抽出するには、正規表現を使用した解決策を検討してみましょう。

次の Python スニペットは、文字列から ANSI エスケープ シーケンスを削除する方法を示しています。

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)
ログイン後にコピー

ansi_escape正規表現は、7 ビットと 8 ビットの両方の C1 ANSI エスケープ シーケンスを対象としています。エスケープ文字 (x1B) で始まり、その後に制御シーケンス ([@-Z\-_] など) または [ で導入された制御シーケンスが続くシーケンスをキャプチャします。その後、sub() メソッドはすべての一致を空の文字列に置き換え、エスケープ シーケンスを効果的に削除します。

たとえば、次の入力文字列:

'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'
ログイン後にコピー

は次のように変換されます:

'ls\r\nexamplefile.zip\r\n'
ログイン後にコピー

このメソッドを使用すると、ANSI エスケープ シーケンスを削除し、SSH コマンドから返された文字列から目的のテキストを取得して、書式設定を妨げることなくテキストを抽出しました。

以上がPython の文字列から ANSI エスケープ シーケンスを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート