【问题标题】:Preg_replace non-alphanumerics and special charactersPreg_replace 非字母数字和特殊字符
【发布时间】:2015-02-28 00:41:34
【问题描述】:

我正在尝试使用 preg_replace 删除字符串中不属于指定白名单的任何字符。白名单应包含所有字母数字和常用标点符号,以及空格和以下内容:² ¹ º ° © ½ ¼ ¾ ® ™

我尝试使用以下方法来完成此操作:

preg_replace("/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/","", $string);

但是,这会删除字符串中非法字符之后的所有内容,而不是仅删除非法字符。如果我只使用 alnum、punct 和空格字符,它就可以正常工作,所以我认为问题出在最后的特殊字符上——但我无法弄清楚如何正确包含它们。

例子:

“test test ₣ test test”变成“test test”,但我希望它变成“test test test test”

【问题讨论】:

    标签: php regex


    【解决方案1】:

    您想使用u (unicode) modifier

    $str = preg_replace('/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/u', '', $str);
    

    【讨论】:

    • 是的,就是这样。非常感谢!
    猜你喜欢
    • 2016-02-09
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多