如何编写保留部分字符串的regexp替换?
我正在使用Sublime Text 3并进行一些代码重构。我有很多代码片段(数百个)如下所示:如何编写保留部分字符串的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
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')?