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

Her*_*ler 3 php regex

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

$result = preg_split('/[^A-Za-z]+/', $text)
Run Code Online (Sandbox Code Playgroud)

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

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

$result = preg_split('/[^?-??-?]+/', $text)
Run Code Online (Sandbox Code Playgroud)

Tim*_*ker 10

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

$result = preg_split('/\P{L}+/u', $subject);
Run Code Online (Sandbox Code Playgroud)

[^?-??-?]+将无法工作,因为在Unicode字符集中,?(0x0410)不是第一个Kyrillian字母,而?(0x044F)不是最后一个.这些荣誉似乎转到?(0x0401)和?(0x04F9).我根本不懂俄语,所以我不能推测为什么会这样.

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

截图charmap