我將如何擴展該preg_replace函數(在PHP)承認空格,使用正則表達式也取代空格..如何使用正則表達式
$this->permalink = preg_replace('[^a-z0-9]', '-', $this->permalink);
它是用於基於頁面標題頁的永久鏈接。 '關於我'將成爲'關於我'。一切都很好,除非它沒有刪除空間。
謝謝!
我將如何擴展該preg_replace函數(在PHP)承認空格,使用正則表達式也取代空格..如何使用正則表達式
$this->permalink = preg_replace('[^a-z0-9]', '-', $this->permalink);
它是用於基於頁面標題頁的永久鏈接。 '關於我'將成爲'關於我'。一切都很好,除非它沒有刪除空間。
謝謝!
正如在評論中指出的,你正則表達式缺少分隔符。我還添加了i
修飾符,以便區分大小寫。
實施例:
$this->permalink = preg_replace('/[^a-z0-9]/i', '-', $this->permalink);
這裏的一個工作示例:http://codepad.org/OlzQax1c。
這仍然是錯誤的。他的正則表達式將刪除空格,但他錯過了'/'分隔符。 – coreyward
@coreyward - 你絕對正確。我已經更正了我的答案,並添加了「i」修飾符。謝謝! –
@Alex coady - 確實如此。我誤解了你的問題,但複製上面的行並再次嘗試。 –
如何
$this->permalink = preg_replace('/\W/i', '-', $this->permalink);
\W
是任何非單詞字符(字母,數字,下劃線)
老實說,你應該嘗試一個快速的正則表達式的教程。這是非常基本的東西。 – coreyward
您可以將您的正則表達式更改爲'[^ a-z0-9] | \ s',但您的上述表達式適用於我。 – Bojangles
這沒有奏效。 '|'打破了功能。 – Alex