【问题标题】:Using Preg_replace for "..."将 Preg_replace 用于“...”
【发布时间】:2014-05-03 00:22:29
【问题描述】:

我想用 preg_replace 替换所有的“...”, 示例:你好... => 你好

我试过了:

$dir = preg_replace('/.../', '', $dir);

但它不起作用:/

【问题讨论】:

  • 你为什么用preg_replace而不是str_replace

标签: php preg-replace


【解决方案1】:

dot (.) 是正则表达式中的一个特殊字符,它匹配除换行符以外的任何单个字符(如果指定了PCRE_DOTALL,则匹配任何字符)。如果您真的想匹配文字 . 字符,则必须将其转义或将其包装在字符类中。

但是,对于这么简单的事情,不需要正则表达式。只需使用str_replace

$dir = str_replace('...', '', $dir);

另请注意,horizontal ellipsis () 是一个独立于三个句点 (...) 的 Unicode 字符。如果您还需要处理这些问题,这会有点棘手,因为 PHP 不提供真正的 Unicode 支持。具体如何处理取决于$dir 的编码,但假设它是UTF-8 编码的,这将删除任何水平省略号字符(\xE2\x80\xA6\u2026 的UTF-8 编码形式):

$dir = str_replace("\xE2\x80\xA6", '', $dir);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2018-11-29
    • 2016-04-05
    相关资源
    最近更新 更多