Python の文字列から ANSI エスケープ シーケンスを削除する
SSH コマンドから取得した文字列を操作する場合、ANSI エスケープ シーケンスが干渉する可能性があります。プログラムの動作。これらのエスケープ シーケンスを削除し、文字列から関連情報を抽出するには、Python の正規表現モジュールを使用して次の手法を使用できます。
正規表現メソッド
を使用できます。次の正規表現は、文字列から ANSI エスケープ シーケンスを識別して削除します:
import re # 7-bit C1 ANSI sequences ansi_escape = re.compile(r'\x1B(?:[@-Z\-_]|\[[0-?]*[ -/]*[@-~])') result = ansi_escape.sub('', sometext)
この正規表現は両方を対象としています。 7 ビットおよび 8 ビットの C1 ANSI エスケープ シーケンス (コントロール シーケンス イントロデューサー (CSI) および選択グラフィック レンディション (SGR) コードを含む)。
例
次のことを考えてください。 ANSI エスケープ シーケンスを含む文字列:
'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'
上記の正規表現を適用するエスケープ シーケンスが削除され、次のものが残ります。
ls\r\nexamplefile.zip\r\n
正規表現の説明
による一致これらのエスケープ シーケンスを削除すると、文字列から目的のテキストを効果的に抽出できます。
以上がPython の文字列から ANSI エスケープ シーケンスを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。