0

在这里的一篇文章中,我发现了这个表达式

    // 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);

没有任何效果。

4

1 回答 1

0

怎么样:

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

用法:

$str = preg_replace('/[^\p{N}\p{L}\p{P}\s]/u', '-', $str);
于 2013-03-24T09:12:25.627 回答