原由
Telnet协议支持用转义字符增强客户显示等特殊效果,但对于使用Telnet协议的客户端程序读取数据、分析数据时有比较大的干扰,怎么样把其过滤呢?
实现
telnet方式有以ESC开头的ANSI转义字符,可以方便的控制字符颜色、背景等属性。常见的颜色转义字符:
颜色 对应的telnet ansi字符
红 ESC[31m
绿 ESC[32m
黄 ESC[33m
蓝 ESC[34m
紫红 ESC[35m
蓝绿 ESC[36m
黑(白) ESC[37m
复位 ESC[m
发现主要是ESC(/x16)后面加代码,以m结尾,有了这个模式就可以用re正则表达式方便的过滤。
源代码
def
__ZYResult
(self, instrs):
re.compile('(/x1b/[[0-9]*m)')
return p.sub( '' , instrs)
re.compile('(/x1b/[[0-9]*m)')
return p.sub( '' , instrs)
经测试完全满足要求,o(∩_∩)o...