我想编写一个PHP函数,只保留az(保留所有字母小写)0-9和“-”,并用“-”替换空格。这是我到目前为止所拥有的: ... $s = strtolower($s); $s = str_replace(' ', '-', $s); $s = preg_replace("/[^a-z0-9]\-/", "", $s);但我注意到它保留了“?” (问号)我希望它不会保留我没有注意到的其他字符。我怎样才能纠正它以获得预期的结果?(我对正则表达式不太熟悉,尤其是在切换语言/工具时。)
1 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
$s = strtolower($s);
$s = str_replace(' ', '-', $s);
$s = preg_replace("/[^a-z0-9\-]+/", "", $s);
[] 括号中没有 \- 。看来你也可以使用 - 而不是 \- ,两者都对我有用。
您需要添加搜索字符的乘数。在本例中,我使用了+。
加号表示前一个元素出现一次或多次。
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消