php使用regex和mb_split来实现带有UTF8的str_split功能


php use regex with mb_split to achieve str_split functionality with UTF8

我正试图将一个字符串拆分为一个数组。我试过str_split(),但问题是像"äüÜÜÖß"这样的字符不起作用(它们变成了问号)

所以我试着用mb_split()做同样的事情,但我不知道如何为它获得正确的Regex

你能帮帮我吗?

这是代码:

$arr = mb_split("'.", $str);

您可以尝试:

$arr = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);

有关/u修饰符,请参见http://php.net/manual/en/reference.pcre.pattern.modifiers.php:

"u(PCRE8)此修饰符打开与Perl不兼容的PCRE的附加功能。模式字符串被视为UTF-8。此修饰符可从Unix上的PHP 4.1.0或更高版本以及win32上的PHP 4.2.3中获得。从PHP 4.3.5开始检查模式的UTF-8有效性。"

好的。就是这样:

$arr = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);