php正则表达式允许在字符串中斜杠

时间:2014-04-20 07:36:56

标签: php regex

这是我的正则表达式,以排除特殊字符,然后允许少数像( - ,%,:,@)。我也想允许/但是问题

 return preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%:@&-]/s', '', $string);

这适用于列出的特殊字符,但

 return preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%\\:&-]/s', '', $string); 

不会过滤l个字符。

以下是测试链接:

http://ideone.com/WxR0ka

在网址中不允许\\。我想像往常一样显示网址

1 个答案:

答案 0 :(得分:3)

您在http://之前输入http:\\时出错,您的正则表达式需要在排除列表中包含/。这应该有效:

function clean($string) {
   // Replaces all spaces with hyphens.
   $string = str_replace(' ', '-', $string);
   // Removes special chars.
   return preg_replace('~[^\w %\[\].()%\\:@&/-]~', '', $string);
}

$d =  clean("this was http://nice readlly n'ice 'test for@me to") ;
echo $d; // this-was-http://nice-readlly-nice-test-for@me-to

Working Demo