2012-08-14 65 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