我偶然发现了这个主题,因为我正在开发一个控制台应用程序,目前在 Windows 计算机上使用 Cygwin 运行它(但在某个阶段它也必须在 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();
您还可以查看 ansi-econsole Eclipse 的插件。它是一个 Eclipse 插件,可以理解 ANSI 转义序列来为 Eclipse 控制台输出着色。
关于java - BASH 控制序列解析器或正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473988/