php使用正则表达式与mb_split一起使用UTF8实现str_split功能

时间:2012-08-26 16:27:53

标签: php regex

我正在尝试将字符串拆分为数组。 我试过str_split(),但问题是像“äüöÄÜÖß”这样的字符不起作用(它们成了问号)

所以我试图用mb_split()做同样的事情,但我不知道如何为它获得正确的正则表达式。

你能帮帮我吗?

以下是代码:

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

2 个答案:

答案 0 :(得分:4)

您可以尝试:

$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上从PHP 4.1.0或更高版本获得4.2.3在win32上。从PHP 4.3.5开始检查模式的UTF-8有效性。“

答案 1 :(得分:3)

确定。就是这样:

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