使用正则表达式删除周围的文本

Remove surrounding text with regular expression

我有一些具有许多功能的代码,每个功能都包含自己的日志条目。每个日志条目都被一个 if 语句包围。我想删除 if 语句,只保留日志条目,我想我可以使用带有查找和替换的正则表达式来完成。

例如:

if (log.isEnabled()) {
    log.write("Log message with variable: %s ", var);
}

应替换为:

log.write("Log message with variable: %s", var);

我已经按照 if \(log.isEnabled\(\)\) \{ (.*) } 的方式尝试了一些方法来捕获和分组表达式,但还没有让它起作用。

是否有一个表达式可以捕获中间的日志条目,这样我就可以find/replace而不是手动完成?

谢谢!

如果您没有任何内部花括号({ 和 }),那么您可以使用

\{\s*(.*)\s*}

...根据 https://regex101.com 匹配

log.write("Log message with variable: %s ", var);

你可以试试这个,

\bif\s*\(.*?\)\s*\{\s*([\s\S]*?);\s*}

将匹配的字符串替换为</code>或<code>

DEMO`