2011-11-10 15 views
0

可能重複:
how to replace special characters with the ones they're based on in PHP?怎樣的preg_replace一切,但_-/

我需要清理一個字符串,將包含特殊字符(外語鍵盤等)和我需要將它們改爲「ä=> a」,而不要刪除「_」,「 - 」和「/」等字符。

+1

你的規則是如何爲刪除特殊字符定義的? Unicode中有幾百個字符,它們有不同的標記,更不用說非拉丁字母字符。那些如何處理?如果您確實生成了詳盡的列表,您可能會發現[strtr](http://us3.php.net/strtr)命令對此有用。 – mellamokb

+0

你是否試圖自己解決這個問題?谷歌搜索** [正則表達式替換除了](http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=regex+replace+everything+except)**產生了相當多的結果。 – Blender

+0

我正在做'/(à|á|â|ä|å|æ)/'=>'a'。是的,我試過了,否則不會來這裏。 @GabiPurcaru不是重複的,因爲您看到我沒有問過如何替換字符,而是問如何替換字符而留下一些字符。 – qalny

回答

5
print iconv('UTF-8', 'ASCII//TRANSLIT', 'à|á|â|ã|ä|å|æ'); 

a|a|a|a|a|a|ae 

不需要正則表達式。適合正確工作的正確工具。

+0

它工作。謝謝! – qalny

+0

有時候,正則表達式問題的最佳答案是根本不使用正則表達式:) – Scuzzy

+0

+1表示簡潔的答案(這也恰好是正確的):-) – Homer6