2014-02-17 76 views
1

在我當前的PHP代碼中,我有特殊字符的許多問題,我想用正則表達式替換它們。你知道我能做到嗎?正則表達式刪除特殊字符並保留重音和()@ -_'&&字符

我想接受只是:

preg_replace('/[^\p{L}0-9\-]/u', '', $string); 

這就是:

與口音 所有數字 ()@ -_」 &

我正則表達式的所有字母。這正則表達式是一個乾淨的頭文件下載文件。

謝謝大家的幫助。 最好的問候,

回答

2

您可以直接在您的字符類允許的字符:

$replaced = preg_replace("/[^\p{L}0-9()@_'&-]+/u", '', $string); 

也更好地使用量詞+這裏,使更換過程更有效,因爲多個字符將被匹配,並在每個取代呼叫。

+0

尼斯感謝您!你的正則表達式與preg_replace(「/ [^ \ p {L} 0-9 \(\)\ @ \ _ \'\&\ - ] +/u」,'',$ string)是一樣的。 '? – Dimitri

+0

是的,但你不需要在角色等級內完成所有過度逃跑。 – anubhava

+1

Hooo好吧!感謝您的幫助。 :)我點擊解決! – Dimitri

2

當你使用\pL信件,你可以使用\pN的數字:

preg_replace("/[^\p{L}\p{N}()@_'&-]+/u", '', $string);