2011-07-10 55 views
1

我將如何擴展該preg_replace函數(在PHP)承認空格,使用正則表達式也取代空格..如何使用正則表達式

$this->permalink = preg_replace('[^a-z0-9]', '-', $this->permalink); 

它是用於基於頁面標題頁的永久鏈接。 '關於我'將成爲'關於我'。一切都很好,除非它沒有刪除空間。

謝謝!

+0

老實說,你應該嘗試一個快速的正則表達式的教程。這是非常基本的東西。 – coreyward

+0

您可以將您的正則表達式更改爲'[^ a-z0-9] | \ s',但您的上述表達式適用於我。 – Bojangles

+0

這沒有奏效。 '|'打破了功能。 – Alex

回答

2

正如在評論中指出的,你正則表達式缺少分隔符。我還添加了i修飾符,以便區分大小寫。

實施例:

$this->permalink = preg_replace('/[^a-z0-9]/i', '-', $this->permalink); 

這裏的一個工作示例:http://codepad.org/OlzQax1c

+0

這仍然是錯誤的。他的正則表達式將刪除空格,但他錯過了'/'分隔符。 – coreyward

+0

@coreyward - 你絕對正確。我已經更正了我的答案,並添加了「i」修飾符。謝謝! –

+0

@Alex coady - 確實如此。我誤解了你的問題,但複製上面的行並再次嘗試。 –

2

如何

$this->permalink = preg_replace('/\W/i', '-', $this->permalink); 

\W是任何非單詞字符(字母,數字,下劃線)