BASH 控制序列解析器或正则表达式?

BASH control sequences parser or regex?

我偶然发现了这个主题,因为我正在开发一个控制台应用程序,目前在 Windows 机器上使用 Cygwin 运行 它(但它必须 运行 Linux BASH 也在某个阶段。

最初我只想涂上颜色,所以我发现了所有这些 "(ESC)[31m... (ESC)[1m" 类型指令...用于前景色和背景色。

但在测试过程中,我也希望能够剥离这些代码,只获取 "non-markup" 文本。对于其他形式的标记(特别是 HTML),有可用的工具。这些控制台代码有这样的东西吗?谷歌搜索我在 C 中找到了一些东西,在 Python 中找到了一些东西,但在 Java.

中什么也没有

认为 这里涉及的代码(对于 Cygwin 和 BASH)是 "ANSI" 控制代码...但我不确定。有人可以证实这一点吗?

如果没有成熟的解析器,覆盖所有情况的正则表达式会有所帮助。如有必要,我会尝试自己从文档中推出一个,但最好能从专家那里得到一个现成的...

看看里面众所周知的jansi library - especially AnsiString

AnsiString ansiString = new AnsiString("string with escape codes");
String plainString = ansiString.getPlain();

您还可以查看 Eclipse 的 ansi-econsole 插件。它是一个 Eclipse 插件,可以理解 ANSI 转义序列来为 Eclipse 控制台输出着色。