2014-02-05 45 views
0

我需要找到並替換大量寫入的代碼,並且我的文本編輯器與正則表達式一起工作,但我不知道如何製作它們。我將如何創建一個正則表達式來做到這一點:創建一個正則表達式來移動字符串

來自:

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

到:

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

wordOne /兩者可以是任何文字在我的問題是和林不知道如何格式化我的正則表達式查找然後替換爲我的格式

+1

什麼編輯器?他們的正則表達式引擎會有所不同。一般的語法通常是'/ find(this)/用\ 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 /如何做我正在做一個正則表達式搜索和替換在sublime文本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

相關問題