java删除ASCII颜色代码
所以,我有个问题。我从一个记录器中捕获了一些东西,输出结果如下所示:
11:41:19 [INFO] ←[35;1m[Server] hi←[m
我需要知道如何删除这些讨厌的ASCII颜色代码(或解析它们)
你可以在下面搜索框中键入要查询的问题!
所以,我有个问题。我从一个记录器中捕获了一些东西,输出结果如下所示:
11:41:19 [INFO] ←[35;1m[Server] hi←[m
我需要知道如何删除这些讨厌的ASCII颜色代码(或解析它们)
# 1 楼答案
如果它们是完整的,它们应该由ESC(
U+001B
)加上[
加上分号分隔的数字列表,再加上m
组成。(见https://stackoverflow.com/a/9943250/978917。)在这种情况下,您可以通过以下方式删除它们:。或者,您也可以在检查日志时使用
less -r
来利用它们。:-)(注意:这是特定于颜色代码的。如果您还找到其他ANSI转义序列,您将希望对其进行一点概括。我认为一个相当通用的正则表达式应该是
\u001B\\[[;\\d]*[ -/]*[@-~]
。您可能会发现http://en.wikipedia.org/wiki/ANSI_escape_code很有帮助。)如果序列是而不是完整的-也就是说,如果它们以某种方式被损坏-那么你必须调查并准确地找出发生了什么损坏
# 2 楼答案
这个正则表达式怎么样
replaceAll("\\d{1,2}(;\\d{1,2})?", "");
基于此处找到的格式:http://bluesock.org/~willg/dev/ansi.html