在php中使用preg_split从字符串中获取单词

时间:2012-11-11 06:30:37

标签: php regex

我正在尝试使用preg_split从php中获取字符串,如下所示:

$result = preg_split('/[^A-Za-z]+/', $text)

但这不起作用,有些词是分开的, 我做错了什么?

编辑:事实是它不适用于俄文=“фываывафыфываф”;

$result = preg_split('/[^А-яа-я]+/', $text)

2 个答案:

答案 0 :(得分:10)

[^A-Za-z]仅考虑ASCII字母。您需要拆分Unicode非字母:

$result = preg_split('/\P{L}+/u', $subject);

[^А-Яа-я]+也不起作用,因为在Unicode字符集中,А(0x0410)不是第一个Kyrillian字母,я(0x044F)不是最后一个字母。这些荣誉似乎转到Ё(0x0401)和ӹ(0x04F9)。我根本不懂俄语,所以我不能推测为什么会这样。

您可以使用角色地图程序轻松查看:

screenshot charmap

答案 1 :(得分:0)

$str ="As sdf fdasf";
$result = preg_split('/[\b ]/', $str);

编辑:

$result = preg_split('/\b\s+/', $str); //this is not for Unicode