我正在尝试使用 preg_split 从 php 中的字符串中获取单词,如下所示:
$result = preg_split('/[^A-Za-z]+/', $text)
但这不起作用,有些单词是分裂的,我做错了什么?
编辑:事实是它不适用于俄罗斯文本 = "фыва ывафы фываф";
$result = preg_split('/[^А-яа-я]+/', $text)
[^A-Za-z]
只考虑 ASCII 字母。您需要拆分 Unicode 非字母:
$result = preg_split('/\P{L}+/u', $subject);
[^А-Яа-я]+
也不起作用,因为在 Unicode 字符集中,А
(0x0410) 不是第一个 Kyrillian 字母,并且я
(0x044F) 不是最后一个。看来这些荣誉属于Ё
(0x0401) 和ӹ
(0x04F9)。我根本不懂俄语,所以我无法推测为什么会这样。
您可以使用字符映射程序轻松检查:
$str ="As sdf fdasf";
$result = preg_split('/[\b ]/', $str);
编辑:
$result = preg_split('/\b\s+/', $str); //this is not for Unicode