我偶然发现了这个主题,因为我正在开发一个控制台应用程序,当前在使用Cygwin的Windows计算机上运行它(但是在某些阶段它也必须在Linux BASH中运行)。
最初,我只想应用颜色,因此我发现了所有这些用于前景和背景颜色的“(ESC)[31m ...(ESC)[1m””类型指令...)。
但是在测试过程中,我也希望能够剥离这样的代码,然后进入“非标记”文本。对于其他形式的标记(尤其是HTML),有可用的工具。这些控制台代码是否有类似的内容?在谷歌搜索中,我发现了C中的某些东西,Python中的某些东西,而Java中却没有。
我认为这里涉及的代码(针对Cygwin和BASH)是“ ANSI”控制代码...但是我不确定。有人可以确认吗?
如果没有成熟的解析器,则涵盖所有情况的正则表达式将很有帮助。如有必要,我会尝试从文档中挑选一个,但是最好从专家那里购买一个。
最佳答案
看一下著名的jansi库-特别是其中的AnsiString:
AnsiString ansiString = new AnsiString("string with escape codes");
String plainString = ansiString.getPlain();
您也可以查看Eclipse的ansi-econsole插件。这是一个Eclipse插件,可以理解ANSI转义序列以给Eclipse控制台输出着色。