2012-06-04 88 views
4

我想替换字符串中不是字母,数字或破折号“ - ”的任何东西。PHP preg_replace破折号正则表达式

如何修改此行以包含短划线?

$link = preg_replace('/[^a-z0-9]/', "", strtolower($_POST['link_name'])); 

我只是把它插入那里吗?

回答

9

你必须逃离-,因为它是正则表达式特殊字符:

$link = preg_replace('/[^a-z0-9\-]/', '', strtolower($_POST['link_name'])); 
6

只需添加-到类([^a-z0-9-])结束。

-在课程结束时没有特别的意义。或者,使用反斜杠进行转义。