2010-11-03 66 views
3

我無法弄清楚如何改變我的正則表達式以保持斜線。我想確保它只包含字母,數字,下劃線,破折號和斜線。如何防止使用Regex剝離斜槓?

($查詢是一樣的東西例如/報價/部分要約-BLA-BLA-BLA)

$query = preg_replace('/[^-a-zA-Z0-9_]/', '', $query); 

感謝

回答

6

就包括在字符類的/。但是,由於您使用/爲正則表達式的分隔符,你需要藏漢逃脫它作爲\/

$query = preg_replace('/[^-a-zA-Z0-9_\/]/', '', $query); 
            ^^ 

你可以讓你的正則表達式的代替[a-zA-Z0-9_]使用\w,也可避免使用轉義/短不同的分隔符說~

$query = preg_replace('~[^-\w/]~', '', $query); 
0

一種方式是爲了躲避/字符,但可以使正則表達式那種難看。

您可以使用不同的分隔符是這樣的:(以下只是說明使用不同的分隔符)

$query = "hello/world/0123"; 
echo $query; 
$query = preg_replace('{/}', '', $query); 
echo $query;