用于破折号的PHP preg_replace正则表达式

时间:2012-06-04 13:09:38

标签: php preg-replace

我正在尝试替换字符串中不是字母,数字或短划线“ - ”的任何内容。

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

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

我只是将它插入那里吗?

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

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:6)

只需将-添加到课程的末尾([^a-z0-9-])。

-在课程结束时没有特殊含义。或者,用反斜杠逃避它。