Как написать замену регулярного выражения, которая хранит часть моей строки? - PullRequest
0 голосов
/ 28 августа 2018

Я использую Sublime Text 3 и работаю над некоторым рефакторингом кода. У меня есть много фрагментов кода (сотни), которые выглядят так:

IF g_debug = 1 THEN
  display_log('GET_CHANGE_REASON_CODE: Entry');
END IF ;

То, что я хотел бы сделать, это заменить все, но оставить раздел в скобках (я реорганизую эту логику в ее собственную функцию), чтобы она выглядела так:

debug('GET_CHANGE_REASON_CODE: Entry');

Обратите внимание, что я также хочу избавиться от 2 пробелов перед исходным вызовом display_log.

Поиск по регулярному выражению, который я получил до сих пор, соответствует всему, вплоть до display_log, но у меня возникают проблемы с игнорированием раздела в скобках и переходом на строку END IF.

Я также не уверен, как написать строку регулярного выражения замены. Вот что у меня есть:

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

Любой совет будет принята с благодарностью!

1 Ответ

0 голосов
/ 29 августа 2018

Я бы попробовал что-то вроде этого - display_log\((.*?)\)\;, замените на debug($1);. Это удалит требование IF...THEN из вашего кода, которое вам, вероятно, не нужно.

...