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

标签 java bash console cygwin ansi-escape

我偶然发现了这个主题,因为我正在开发一个控制台应用程序,目前在 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/

相关文章:

Linux 控制台输出被 ASCII 字符损坏

2 列 Java 控制台日历

ruby-on-rails - 如何使 Ruby 与 bash 兼容

linux - 无法使用 ant exec 任务运行 bash 脚本

linux - 给定路径正在更改为 "/"

java - 如何在最多 1 秒内找到能被 2、3 或 5 整除的数字

java - 当我通过 RDP 连接或更改分辨率时,为什么会收到 java.lang.NullPointerException?

java - 如何从多线程log4j2缓冲区中读取

java - Android:无法从 Intent 中设置/检索数据

java - 如何使用 hibernate 注释验证负值?