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