2012-12-03 182 views
1

我正在使用正則表達式執行查找並使用Dreamweaver進行替換。我遇到了一些困難。這是我在我的頁面中(注意有一個語法錯誤,因爲我需要在字符串的末尾添加一個括號)。Dreamweaver正則表達式使用正則表達式查找和替換

$email=htmlspecialchars(mysql_real_escape_string($_POST['email']);  
$name=htmlspecialchars(mysql_real_escape_string($_POST['name']);  

我想Performa的查找和替換,將產生這樣的:

$email=htmlspecialchars(mysql_real_escape_string($_POST['email']));              
$name=htmlspecialchars(mysql_real_escape_string($_POST['name'])); 

這是我使用進行查找內容。它似乎取代了太多的文本(它始於$ email變量$ _POST,但一直延續到$ _POST的$ name變量)

  • 找到:\ $ _ POST [' ([^ <] *) ']
  • 替換:$ _ POST [' $ 1' ])

我結束了這一點:

$email=htmlspecialchars(mysql_real_escape_string($_POST['email']);  
$name=htmlspecialchars(mysql_real_escape_string($_POST['name'])); 

正如你所看到的,只是修復了最後一個實例(這是因爲find函數是從$ _POST ['email']一直選擇$ _POST ['name'])。有想法該怎麼解決這個嗎?謝謝!

回答

1

添加一個問號使其非貪婪。此外,您需要轉義您想要匹配的[和]字符。

Find: \$_POST\['([^<]*?)'\] 
Replace: $_POST['$1']) 

,或者,用戶的性格,而不是一個<字符引號內匹配值:

Find: \$_POST\['([^']*)'\] 
Replace: $_POST['$1']) 
+0

我得到一個正則表達式語法錯誤:‘在正則表達式無法比擬的)’ 。有任何想法嗎? – Brandon

+0

讓我試試新帖子 – Brandon

+0

你真棒!它現在完美地工作(替代方法)。我會在大約「7分鐘」內將您的答案標記爲正確 – Brandon