Leo*_*Leo 5 java ansi jsch vt100
我正在使用自动化,并使用Jsch连接到远程设备并自动执行一些任务。
我在解析命令结果时遇到问题,因为有时它们带有ANSI Control chars。
我已经看到了这个答案和另一个答案,但是它没有提供任何库来做到这一点。如果有的话,我不想重新发明轮子。而且我对这些答案没有信心。
目前,我正在尝试此操作,但我不确定它是否足够完整。
reply = reply.replaceAll("\\[..;..[m]|\\[.{0,2}[m]|\\(Page \\d+\\)|\u001B\\[[K]|\u001B|\u000F", "");
Run Code Online (Sandbox Code Playgroud)
如何从Java字符串中删除ANSI控制字符(VT100)?
大多数ANSI VT100序列的格式为ESC [(可选)后跟一个数字或由分隔的两个数字;,后接一些不是数字或;。的字符。所以像
reply = reply.replaceAll("\u001B\\[[\\d;]*[^\\d;]","");
Run Code Online (Sandbox Code Playgroud)
要么
reply = reply.replaceAll("\\e\\[[\\d;]*[^\\d;]",""); // \e matches escape character
Run Code Online (Sandbox Code Playgroud)
我认为应该抓住其中的大多数。可能还有其他情况,您可以单独添加。(我尚未对此进行测试。)
您发布的正则表达式中的某些替代项以\\[而不是转义字符开头,这可能意味着您可以删除一些本不应该删除的文本,或者删除控制序列的一部分,但保留ESC字符。
| 归档时间: |
|
| 查看次数: |
3131 次 |
| 最近记录: |