在Java中,如何将日志消息与一个以上的字符串模式匹配
||
我有几种字符串模式:
ArrayList<String> tmp = new ArrayList<String>();
tmp.add(\"INFO\");
tmp.add(\"Error\");
tmp.add(\"Debug\");
tmp.add(\"Failed\");
tmp.add(\"Unable\");
我也正在检查文件中的每一行是否行与任何字符串模式都匹配。如果匹配,我将显示行。我的代码是,
for (String pattern : tmp) {
if (line.contains(pattern)) {
System.out.println(line);
}
}
现在的问题是,如果线匹配有多个字符串模式,则每当匹配时线就会被显示。
我只想显示一行(需要检查任何字符串模式是否与line匹配)。如何执行此操作。
没有找到相关结果
已邀请:
2 个回复
阀傻
另外,请正确格式化您的代码(将其缩进4个空格),以使其更易于阅读。
乐遣杀屎
这将打印包含一个或多个提供的关键字的每一行。 有关更多信息,请参见正则表达式教程。 另外,如果让regex引擎进行行拆分而不是传递单独的行,则可以进一步改善这一点:
更新:好的,如果该模式是动态的,则可以从列表中动态构建它: