我正在处理一个简单的搜索输入。它按空格分隔术语,效果很好。但是,它不识别其他语言空间。
我想将其他语言空间预先放置到标准化空间中。
例如,
$pattern = array(
//insert other language space codes here (I don't know what they are or how to find them)
);
$replacement = ' ';
$string = "日本語 の スペース です";
$cleaned = preg_replace($pattern, $replacement, $string);
在模式中使用u
修饰符以及与任何空格字符匹配的's
转义序列。这看起来像这样(使用您的代码):
$pattern = '/'s/u';
$replacement = '';
$string = "日本語 の スペース です";
$cleaned = preg_replace($pattern, $replacement, $string);
var_dump($cleaned);
输出:
string(30) "日本語のスペースです"
来自手册:
u(PCRE_UTF8)
此修饰符启用PCRE的附加功能,该功能与Perl不兼容。模式字符串和主题字符串被视为UTF-8。此修饰符可从Unix上的PHP 4.1.0或更高版本以及win32上的PHP 4.2.3中获得。从PHP 4.3.5开始检查模式和主题的UTF-8有效性。一个无效的主题将导致preg_*函数不匹配;无效模式将触发E_ WARNING级别的错误。自PHP 5.3.4以来,五个和六个八位字节的UTF-8序列被视为无效(分别为PCRE 7.3 2007-08-28);以前,这些都被认为是有效的UTF-8。