No.155
オレメモ
Pythonで文字列からANSIエスケープシーケンスを取り除く方法
ソース
import re
text_ansi = '\033[2KTest\033[2;3HText'
pattern = re.compile( r'\\033\[[0-9;]{1,}[a-zA-Z]{1}' )
text_noansi = pattern.sub( '', text_ansi )
print( text_noansi )
実行結果
TestText
参考にしていた書き込みが間違っていました。
制御文字(\や[)に対するエスケープ[\]がありませんでした。
解決に時間がかかったのは自分の無知が故です。up主に文句を言ったらいけません。
文字数を{}で指定しなくてもいいのですが、自分としてはこの方がメンテナンス性がいいかなと。
あ、ここに書く時もそうなのですが、[\]を表示させるには注意があります。
[\]を表示させるには[\\]としないといけない場合があります。
「\\033」や「\[」と表示するには「\\\033」や「\\[」と打たねばならん事があるということです。システムによって若干違うようですが。
これが原因でup主の書き込みがおかしくなっていたのかな?
それにしても奇妙な字面です・・・
#Python
Pythonで文字列からANSIエスケープシーケンスを取り除く方法
ソース
import re
text_ansi = '\033[2KTest\033[2;3HText'
pattern = re.compile( r'\\033\[[0-9;]{1,}[a-zA-Z]{1}' )
text_noansi = pattern.sub( '', text_ansi )
print( text_noansi )
実行結果
TestText
参考にしていた書き込みが間違っていました。
制御文字(\や[)に対するエスケープ[\]がありませんでした。
解決に時間がかかったのは自分の無知が故です。up主に文句を言ったらいけません。
文字数を{}で指定しなくてもいいのですが、自分としてはこの方がメンテナンス性がいいかなと。
あ、ここに書く時もそうなのですが、[\]を表示させるには注意があります。
[\]を表示させるには[\\]としないといけない場合があります。
「\\033」や「\[」と表示するには「\\\033」や「\\[」と打たねばならん事があるということです。システムによって若干違うようですが。
これが原因でup主の書き込みがおかしくなっていたのかな?
それにしても奇妙な字面です・・・
#Python