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

问题描述 投票:0回答:1

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

最初我想做的就是应用颜色,所以我发现了所有这些 "(ESC)[31m... (ESC)[1m" type directives... for foreground and background colors.

但在测试过程中,我也希望能够剥离此类代码,只获取“非标记”文本。对于其他形式的标记(尤其是 HTML),有可用的工具。这些控制台代码有这样的东西吗?谷歌搜索我在 C 中找到了一些东西,在 Python 中找到了一些东西,但在 Java 中什么都没有。

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

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

java bash console cygwin ansi-escape
1个回答
1
投票

看看著名的 jansi 库——尤其是里面的 AnsiString

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

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

© www.soinside.com 2019 - 2024. All rights reserved.