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