2009-09-10 66 views
0

我正在做的是用虛線下方的第一行或第二行代替大型程序中的所有$_REQUEST['var']mysql_escape_string($_REQUEST['var'])

現在,我已經想出了這麼多的正則表達式,但我想使它更簡單。而不是必須先運行第一個,然後再運行第二個。我試過這個,但沒有奏效。

(mysql_escape_string\()*$_REQUEST\[\'([^']*)\'\]\)(\)*) 

所以下面是有效的,但又要做兩次。

$_REQUEST\[\'([^']*)\'\] 

mysql_escape_string\($_REQUEST\[\'([^']*)\'\]\) 

(isset($_GET['\1'])?mysql_real_escape_string($_GET['\1']):false) 

(isset($_POST['\1'])?mysql_real_escape_string($_POST['\1']):false) 

============================ 更新:是的,經過一番研究,我計算出Notepad ++不支持大多數正則表達式。我想一個額外的步驟不能傷害一個人。這只是懶惰。

*注:但如果有人想嘗試隨意發表評論。 至少它是僅有幾步之遙,而不是20

+0

你能展示一個你的源文本的例子,然後是你的目標文本的例子嗎? – akf 2009-09-10 20:45:53

+0

gvim是要走的路。 – chown 2011-12-03 06:42:56

回答

1

說使用這個表達式:

mysql_escape_string\(\$_REQUEST\['[^']*'\]\)|\$_REQUEST\['[^']*'\] 

...但它似乎記事本++不支持交替(這是管:'|')在正則表達式搜索。實際上,似乎有很多不支持的基本正則表達式功能。這應該是一個簡單的任務,但是我根本無法在NPP中使用它。我看不出該編輯器可以聲稱如何支持正則表達式搜索。 (是的,我知道它繼承了SciTE的這個特性 - 我也很失望)。

如果你想real正則表達式在你的編輯器中搜索和替換,我建議你爲EditPad Pro。它的正則表達式是現存最好的 - 在功能和功能方面,我認爲它僅次於Perl。它的語法也是高度兼容的;例如,它支持所有的Perl,Python,PHP .NET中的命名捕獲語法變體。

聲明:我在EditPad Pro中沒有任何財務或個人利益;我只是用它,不能想象沒有它的生活。 :D

+0

幾乎所有的記事本++的功能似乎只是一半,我不知道有人使用該編輯器。 – 2010-05-18 20:30:22

0

記事本++確實支持交替,但交替項必須包含在[]中。 如:

(www.mysite.co.uk\/[\/\w]*\/[-.\w]*.[html|css]:)[\s]*.*[/|'|"]([-\w.]*.[gif|jpg|ico]).* 

這是我的工作,當我搜索記事本+ +和交替的正則表達式。

**編輯:好吧,它不正常,我把它收回。它將[]中的字符視爲一個類。