【发布时间】:2014-05-03 00:22:29
【问题描述】:
我想用 preg_replace 替换所有的“...”, 示例:你好... => 你好
我试过了:
$dir = preg_replace('/.../', '', $dir);
但它不起作用:/
【问题讨论】:
-
你为什么用
preg_replace而不是str_replace?
标签: php preg-replace
我想用 preg_replace 替换所有的“...”, 示例:你好... => 你好
我试过了:
$dir = preg_replace('/.../', '', $dir);
但它不起作用:/
【问题讨论】:
preg_replace而不是str_replace?
标签: php preg-replace
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);
【讨论】: