我有一個字符串:的preg_replace - 留在不想要的字符
$string = "Hello World!";
我希望把它變成一個URL友好的標籤,我已經開發了一個函數來做到這一點:
function stripJunk($string){
$string = str_replace(" ", "-", $string);
$string = preg_replace("/[^a-zA-Z]\s/", "", $string);
$string = strtolower($string);
return $string;
}
然而,當我跑我$string
通過它上面,我得到如下:
$string = "hello-world!";
似乎有CHARACT即使從我所瞭解的情況來看,他們也不應該這樣做。
應該這樣寫:
$string = "hello-world";
這是怎麼回事? (這應該是容易peasy檸檬squeasy!)
編輯1:我不知道正則表達式是初學者的東西,但無論如何。此外,刪除我的字符串中的\ s不會產生所需的結果。
期望的結果是:
- 所有空間被轉換爲短劃線。
- 刪除所有不是A-Z或0-9的其餘字符。
- 該字符串然後轉換爲小寫。
編輯2+:清理了我的代碼只是一點。
你的代碼變得毫無意義。所有空格在第一步被替換,因此`str_replace`什麼都不做。 – SilentGhost 2009-07-24 18:20:35
我認爲編輯這個問題很難,所以原來的問題被刪除了。它使以前有用的答案看起來很愚蠢 – 2009-07-24 18:27:07
我與preg_replace有問題。我沒有改變我使用的數學陳述。查看修訂歷史記錄 - 我從一開始就使用的匹配語句保持不變。我改變了代碼,原因有幾個:1)我想專注於我遇到的問題,2)不要關注我有點疲憊,並且做出了一個愚蠢的booboo,並且把事情放在錯誤順序上(無論如何都會被糾正)。 – EvilChookie 2009-07-24 18:34:08