我正在为使用控制台代码的控制台应用程序编写一些 Python 测试,并且在优雅地处理ESC H
序列时遇到了一些问题。
我有s = r'\x1b[12;5H\nSomething'
输入字符串,我想用 Something
. 我正在尝试使用以下正则表达式:
re.sub(r'\x1b\[([0-9,A-Z]{1,2};([0-9]{1,2})H)', r'\2', s)
这当然会创建5Something
.
我想要的是某种效果
re.sub(r'\x1b\[([0-9,A-Z]{1,2};([0-9]{1,2})H)', ' '*(int(r'\2')-1), s)
也就是创建比第二个捕获组的空格数少一个。
如果有一种方法可以简单地将我使用时得到的内容呈现在字符串中,我也会非常高兴print(s)
:
Something
我正在使用 Python 3。
非常感谢!!