我想編寫一個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 關注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消