正则表达式中的Python和二进制数据
我正在寻找一种在python中将不可打印字符放入字符串的方法 小背景信息:我正在使用paramiko通过SSH使用windows命令提示符。但是,paramiko不“解析”/“处理”ANSI终端仿真转义序列。所以它们出现在我的输出中,这是我不想要的。所以我需要去掉这些逃逸序列 但是,这些字符串/转义序列按以下方式编码:正则表达式中的Python和二进制数据,python,Python,我正在寻找一种在python中将不可打印字符放入字符串的方法 小背景信息:我正在使用paramiko通过SSH使用windows命令提示符。但是,paramiko不“解析”/“处理”ANSI终端仿真转义序列。所以它们出现在我的输出中,这是我不想要的。所以我需要去掉这些逃逸序列 但是,这些字符串/转义序列按以下方式编码:Esc[Line;ColumnH 正如您所猜测的。我无法在字符串中获取esc字节值。它也会打印,比如0x1b或27。因此没有用 有人知道如何解决这个问题吗?提前谢谢。您可以使用正则
Esc[Line;ColumnH
正如您所猜测的。我无法在字符串中获取esc字节值。它也会打印,比如0x1b
或27
。因此没有用
有人知道如何解决这个问题吗?提前谢谢。您可以使用正则表达式抑制这些转义序列:
str_with_ainsi_esc = '\x1b[10;10HSalut'
print re.sub('\x1b\[\d+;\d+H','',str_with_ainsi_esc)
转义非ascii字符(通过替换为文字)、执行正则表达式魔术、取消转义?对于许多应用程序,设置环境变量TERM=dumb将阻止它们发送ANSI转义序列。@PauloScardine遗憾的是,这似乎不起作用。啊,这就是如何将字节字符放入字符串中的方法。谢谢。明天我们将进一步了解。(现在是回家时间)我确实将
'\x1b\[\d+;\d+H'
更改为'\x1b\[\d*;\d*H'
,因为根据VT100规范,列和行值都是可选的。