我想用preg_replace替换所有“...”, 示例:Hello ... =>你好
我尝试过:
$dir = preg_replace('/.../', '', $dir);
但它不起作用:/
答案 0 :(得分:2)
dot(.
)是正则表达式中的一个特殊字符,它匹配除换行符之外的任何单个字符(如果指定了PCRE_DOTALL
,则匹配任何字符)。如果你真的想要匹配一个文字.
字符,你必须将其转义或将其包装在一个字符类中。
但是,对于这么简单的事情,不需要正则表达式。只需使用str_replace
:
$dir = str_replace('...', '', $dir);
另请注意,horizontal ellipsis(…
)是三个句点(...
)中的单独Unicode字符。如果你还需要处理这些,那就有点棘手,因为PHP并不能提供真正的Unicode支持。具体如何处理它取决于$dir
的编码,但假设它是UTF-8编码,这将删除任何水平省略号字符(\xE2\x80\xA6
是{的{UTF-8编码形式} {1}}):
\u2026