1

我有以下字符串,我想从多个空格中“清除”:

$string = "This is   a test string"; //Using utf8_decode

没什么大不了的吧?但是,字符串在使用后没有“清理”:

$string = preg_replace('/\s+/', ' ', $string);

因为,字符串实际上是这样的:

$test = "This is a  test string";

那么,我该如何解决这个问题呢?

谢谢。

拜托,我不想替换 Â 字符之类的str_replace('Â', '')东西

4

1 回答 1

2

您可以使用/uUNICODE 修饰符:

$string = preg_replace('/\s+/u', ' ', $string);

/u修饰符使 PCRE 引擎能够将字符串处理为 UTF8 字符串(通过打开PCRE_UTF8动词)并使模式 Unicode 中的速记字符类能够识别(通过启用 PCRE_UCP动词)

要点是\s现在将匹配所有 Unicode 空格,并且输入字符串被视为 Unicode 字符串。

于 2017-03-02T21:07:31.457 回答