我无法弄清楚如何改变我的正则表达式以保持斜线。我想确保它只包含字母,数字,下划线,破折号和斜线。如何防止使用Regex剥离斜杠?
($查询是一样的东西例如/报价/部分要约-BLA-BLA-BLA)
$query = preg_replace('/[^-a-zA-Z0-9_]/', '', $query);
感谢
我无法弄清楚如何改变我的正则表达式以保持斜线。我想确保它只包含字母,数字,下划线,破折号和斜线。如何防止使用Regex剥离斜杠?
($查询是一样的东西例如/报价/部分要约-BLA-BLA-BLA)
$query = preg_replace('/[^-a-zA-Z0-9_]/', '', $query);
感谢
就包括在字符类的/
。但是,由于您使用/
为正则表达式的分隔符,你需要藏汉逃脱它作为\/
:
$query = preg_replace('/[^-a-zA-Z0-9_\/]/', '', $query);
^^
你可以让你的正则表达式的代替[a-zA-Z0-9_]
使用\w
,也可避免使用转义/
短不同的分隔符说~
:
$query = preg_replace('~[^-\w/]~', '', $query);
一种方式是为了躲避/
字符,但可以使正则表达式那种难看。
您可以使用不同的分隔符是这样的:(以下只是说明使用不同的分隔符)
$query = "hello/world/0123";
echo $query;
$query = preg_replace('{/}', '', $query);
echo $query;