2014-02-05 6 views
0

Мне нужно найти и заменить тонну кода, который был написан, и мой текстовый редактор работает с выражениями регулярных выражений, но я не знаю, как их создать. Как создать выражение регулярное выражение, чтобы сделать это:Создание выражения регулярного выражения, перемещающегося вокруг

от:

if ($q->param('wordOne[]') =~ m/wordTwo/) 

к:

if (grep /wordTwo/, $q->param('wordOne[]')) { ... } 

wordOne/Two может быть любое слово, где моя проблема и им не уверен, как отформатировать регулярное выражение для находки, а затем заменить на мой формат

+1

Что редактор? Их регулярные двигатели будут разными. Общий синтаксис часто используется 's/find (this)/replace с \ 1/g' или аналогичным, но может быть чем-то вроде' find \ (this \) 'например (Emacs) – BRFennPocock

+0

посмотреть на http: // stackoverflow. com/questions/11819886/regular-expression-search-replace-in-sublime-text-2 http://stackoverflow.com/questions/17617961/sublime-text-regex-find-and-replace http: // stackoverflow. com/questions/11733370/how-do-i-do-a-regex-search-and-replace-in-sublime-text-2 – BRFennPocock

ответ

0

Поиск:

if \(\$q->param\('([^']+)'\) =~ m/([^/]+)/\) 

([^']+)содержит текст между param(' и ') =~. ([^/]+) аналогичен. См. here для получения дополнительной информации о группах захвата.

Заменить:

if (grep /\2/, $q->param('\1')) { ... } 

\1 и \2 являются обратные_связью к захваченному тексту.

Выход:

if (grep /wordTwo/, $q->param('wordOne[]')) { ... } 

Демонстрация: http://regex101.com/r/pB2jM1

+0

вы сэр - спасатель! – BluGeni

0

Поиск: (\$q->param\('.*?\[\]'\)) =~ m(/.*?/)

Заменить: grep \2, \1

Смежные вопросы