如何编写保留部分字符串的regexp替换?

如何编写保留部分字符串的regexp替换?,regex,oracle,plsql,sublimetext3,Regex,Oracle,Plsql,Sublimetext3,我正在使用Sublime Text 3并进行一些代码重构。我有很多代码片段(数百个)如下所示: IF g_debug = 1 THEN display_log('GET_CHANGE_REASON_CODE: Entry'); END IF ; debug('GET_CHANGE_REASON_CODE: Entry'); 我想做的是替换所有内容,但将该部分保留在括号中(我正在将此逻辑重构为其自身的函数),使其看起来像这样: IF g_debug = 1 THEN display_l

我正在使用Sublime Text 3并进行一些代码重构。我有很多代码片段(数百个)如下所示:

IF g_debug = 1 THEN
  display_log('GET_CHANGE_REASON_CODE: Entry');
END IF ;
debug('GET_CHANGE_REASON_CODE: Entry');
我想做的是替换所有内容,但将该部分保留在括号中(我正在将此逻辑重构为其自身的函数),使其看起来像这样:

IF g_debug = 1 THEN
  display_log('GET_CHANGE_REASON_CODE: Entry');
END IF ;
debug('GET_CHANGE_REASON_CODE: Entry');
注意,我还想去掉原始“display_log”调用前面的2个空格

到目前为止,我导出的regexp搜索通过
display\u log
匹配所有内容,但忽略括号中的部分并继续匹配
END IF
行时遇到问题

我也不确定如何编写replace regexp字符串。以下是我到目前为止的情况:

IF g_debug = 1 THEN(?s)(.*?)display_log(?s)(.*?)

任何建议都将不胜感激

我会尝试这样的方法-
显示日志\((.*)\)\,替换为调试($1)。这将从您的代码中删除
IF…THEN
要求,这可能是您不需要的。

尝试
(?s)IF\s+g\u debug\s*=\s*1\s+THEN\s*display\u log(\(*?)^END IF\s*;
并替换为
debug$1
。哇,谢谢。我忘了提到有时我可能有几行display\u log('一些文本')在IF语句中。我如何将这些行中的每一行更改为debug('sometext')?