我有一些包含许多函数的代码,每个函数都包含自己的日志条目。每个日志条目都包含一个if语句。我想删除if语句,只留下日志条目,我认为我可以使用带有查找和替换的正则表达式。
例如:
if (log.isEnabled()) {
log.write("Log message with variable: %s ", var);
}
应替换为:
log.write("Log message with variable: %s", var);
我已尝试按照if \(log.isEnabled\(\)\) \{ (.*) }
的方式捕捉并对表达进行分组,但还没有让它发挥作用。
是否有一个表达式可以捕获中间的日志条目,以便我可以找到/替换而不是手动执行?
谢谢!
答案 0 :(得分:0)
如果您没有任何内部花括号({和}),那么您可以使用类似
的内容\{\s*(.*)\s*}
...根据https://regex101.com匹配
log.write("Log message with variable: %s ", var);
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您想允许一些格式差异,例如前导空格,请使用此选项。
var str = "if (log.isEnabled()) {\n log.write(\"Log message with variable: %s \", var);\n}";
alert(str.replace(/^\s*if\s*\(log\.isEnabled\(\)\)\s*\{\s*\n\s*((?:.|\n)*?)\s*\n\s*\}/, "$1"));