我无法弄清楚如何更改我的正则表达式以保持斜杠。我想确保它只包含字母,数字,下划线,短划线和斜线。
($ query就像是例如/ offer / some-offer-bla-bla-bla)
$query = preg_replace('/[^-a-zA-Z0-9_]/', '', $query);
由于
答案 0 :(得分:6)
只需在字符类中包含/
即可。但是,由于您使用/
作为正则表达式分隔符,因此您需要将其转义为\/
:
$query = preg_replace('/[^-a-zA-Z0-9_\/]/', '', $query);
^^
您可以使用\w
代替[a-zA-Z0-9_]
缩短正则表达式,也可以使用不同的分隔符/
来避免转义~
:
$query = preg_replace('~[^-\w/]~', '', $query);
答案 1 :(得分:0)
一种方法是逃避/
字符,但这会使正则表达式变得难看。
您可以使用不同的分隔符:(以下仅显示使用不同的分隔符)
$query = "hello/world/0123";
echo $query;
$query = preg_replace('{/}', '', $query);
echo $query;