【问题标题】:PHP utf8 preg_replacePHP utf8 preg_replace
【发布时间】:2013-03-24 06:17:26
【问题描述】:

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

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

没有任何效果。

【问题讨论】:

    标签: regex utf-8 preg-replace


    【解决方案1】:

    怎么样:

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

    用法:

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

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 2011-01-05
      • 2015-10-02
      • 2011-01-14
      • 2013-08-03
      • 1970-01-01
      • 2013-07-17
      • 2010-12-10
      • 2012-02-11
      相关资源
      最近更新 更多