从 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中文网其他相关文章!