使用正则表达式删除周围的文本
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`
我有一些具有许多功能的代码,每个功能都包含自己的日志条目。每个日志条目都被一个 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`