2010-11-03 42 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;