在这里的一篇文章中,我找到了这个表达式
// 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 :(得分:0)
怎么样:
[^\p{N}\p{L}\p{P}\s]
用法:
$str = preg_replace('/[^\p{N}\p{L}\p{P}\s]/u', '-', $str);