2013-03-24 109 views
0

在職位之一在這裏我發現這種表達PHP UTF8的preg_replace

// Replaces every non-letter, non-digit with a dash 
    $str = preg_replace('/(?=\P{Nd})\P{L}/u', '-', $str); 

它的工作不錯,但如何保持基本也標點符號和空格?

我已經試過這樣的事情

$str = preg_replace('/(?=\P{Nd})\P{L}\P{P}/u', '-', $str); 

$str = preg_replace('/[^\P{Nd}\P{L}\P{P}$]/u', '-', $str); 

$str = preg_replace('/[\P{Nd}\P{L}\P{P}]/u', '-', $str); 

,並沒有什麼作品。

回答

0

如何:

[^\p{N}\p{L}\p{P}\s] 

用法:

$str = preg_replace('/[^\p{N}\p{L}\p{P}\s]/u', '-', $str);