如何编写保留部分字符串的正则表达式替换?

时间:2018-08-28 12:05:41

标签: 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');

请注意,我也想摆脱原始“ display_log”调用前面的2个空格。

到目前为止,我进行的正则表达式搜索与display_log中的所有内容都匹配,但是我无法忽略括号中的部分并无法匹配END IF行。

我也不确定如何编写replace regexp字符串。这是我到目前为止的内容:

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

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

我会尝试类似的操作-display_log\((.*?)\)\;,替换为debug($1);。这样会从您的代码中删除IF...THEN要求,而您可能不需要。