2012-08-14 62 views
0

我正在使用netbeans,我想用更換功能在更多文件的特定內容中包裝$ this-> escape(stuff),但有很多條件,比如:我需要一些幫助做正則表達式

比賽:

$this->$variable, $variable 

$this->$array['something'], $this->$array[0], $array['something'], $array[0] 

不匹配:

$this->partial, $this->escape, $this->form 

我至今該工程確定

替換此

echo\s+(\$this->[->a-zA-Z_']+[^\s;(]) 

與此

echo \$this->escape\($1\) 

它不使用數組並且不排除任何東西,也沒有匹配$變量

誰能幫幫忙,提高這種表達方式能夠減少手工翻譯這麼多字符串的折磨嗎?任何幫助表示讚賞。

編輯:只需在我的工作示例中添加排除項就足夠了。

回答

1

這並不完全清楚你想要匹配哪些部分。如果我的理解正確,那麼這應該工作:

(?:\$this->)?\$[^,\s-]*(?=[,\s]) 

如果你打算匹配別的東西,請讓我知道。

+0

那麼,根本沒有工作。我正試圖用echo $ this-> escape($ array ['something'])替換echo $ array ['something']。並提到排除 – 2012-08-14 13:08:33

+0

請參閱我的編輯。這個正則表達式匹配你答案中逗號之間的所有表達式。讓我知道這是不是你的意思。 – davidrac 2012-08-14 13:17:21

+0

這絕對照顧括號中的那些,工作得很好,但我需要所有的條件,我需要一次做所有的事情,或者至少確保沒有不需要的變化,如果我隨後做他們 – 2012-08-14 13:27:46