删除ASCII颜色代码

Nat*_* F. 6 java ascii replace colors color-codes

所以,我有一个问题.我从Logger中捕获了一些东西,输出看起来像这样:

11:41:19 [INFO] ?[35;1m[Server] hi?[m
Run Code Online (Sandbox Code Playgroud)

我需要知道如何删除那些讨厌的ASCII颜色代码(或解析它们).

rua*_*akh 25

如果它们完好无损,它们应该由ESC(U+001B)[加上一个以分号分隔的数字列表加上m.(请参阅/sf/answers/696027531/.)在这种情况下,您可以通过以下方式删除它们:

final String msgWithoutColorCodes =
    msgWithColorCodes.replaceAll("\u001B\\[[;\\d]*m", "");
Run Code Online (Sandbox Code Playgroud)

...或者您可以less -r在检查日志时使用它们.:-)

(注意:这是特定于颜色代码.如果你也找到其他ANSI转义序列,你会想要概括一点.我认为一个相当普遍的正则表达式\u001B\\[[;\\d]*[ -/]*[@-~].你可能会找到http://en.wikipedia.org/wiki/ANSI_escape_code有用.)

如果序列完整 - 也就是说,如果它们以某种方式被破坏 - 那么你将不得不进行调查并弄清楚究竟发生了什么样的破坏.