使用PREG_REPLACE替换(&Q;).(&Q;)

2022-03-22 00:00:00 php preg-replace

我想替换所有的"..."使用preg_REPLACE, 例如:你好……=>您好

我尝试了:

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

但它不起作用:/


解决方案

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

但是,对于如此简单的内容,不需要使用正则表达式。只需使用str_replace

$dir = str_replace('...', '', $dir);
还请注意,ahorizontal ellipsis()是来自三个句点(...)的单独的Unicode字符。如果您还需要处理这些代码,那么就有点麻烦了,因为PHP并不提供真正的Unicode支持。具体如何处理它取决于$dir的编码,但假设它是UTF-8编码的,这将删除任何水平省略号字符(xE2x80xA6u2026的UTF-8编码形式):

$dir = str_replace("xE2x80xA6", '', $dir);

相关文章