如何使用正则表达式在java中找到空的catch块

时间:2017-06-12 10:53:10

标签: java regex log4j2

我正在开发一个拥有数千个Java文件的大项目。我要做的是用错误级别替换catch块中的所有信息级别日志记录。这是和示例方法。

public static String maskNoToLast4(String number) {

        StringBuffer prepared = new StringBuffer("");

        try {
            number = number.trim();
            return "*" + number.substring(number.length() - 4, number.length());
        } catch (Exception e) {
            LGR.info("Error While last four digits of card", e);
        }
        return prepared.toString();
    }

有没有办法找到调用LGR.info()方法的所有catch块?

1 个答案:

答案 0 :(得分:0)

这取决于它是否是一个空的捕获块。

空的catch块类似于:

.*(catch\w?(.?)\w*{\w*})

其中\ w是空格字符的开关。这基本上抓住了你所有的东西:catch(...){},但它不允许{}括号内的东西。

我怀疑你想要将信息自动替换为严重。让我们最好不要假设记录器总是被称为LGR,然后我们得到

.*catch\w?(.?)\w*{.*\.(info).*}.*

这样你就可以获得任何捕获(如上所述,其中包含任何内容,然后是.info,然后再重复任何内容.RegExp会将信息作为匹配组返回。

相关问题