2017-03-12 50 views
-2

我對preg_replace很糟糕,而且我很難弄清楚如何將單引號和雙引號添加到允許的字符。任何幫助將不勝感激。PHP preg_replace保留報價

$comments = "It's an- "Apple"[email protected]#$%^&*()="; 
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+-]+', '', $comments); 

輸出: 其AN-蘋果!?

回答

0

轉義單引號(\')並使用雙引號,並在正則表達式的末尾添加/。儘管在regex character class之內移動末尾的連字符或在正則表達式內轉義,因爲在regex character class(範圍)中具有特殊含義。

$comments = preg_replace('/[^A-Za-z0-9\s,.!?+\\-"\']+/', '', $comments); 
//           ---^^^^^--- 
// or 
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+"\'-]+/', '', $comments); 
//           --^^^^--- 
+0

感謝您的快速響應,但由於某種原因,這是刪除整個字符串,並不返回任何東西。 – nickyb

+0

@nickyb:檢查更新的那一個 –

+0

@nickyb:你可以分享期望的輸入和輸出,'$ comments'的值 –