我试图使用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).我根本不懂俄语,所以我不能推测为什么会这样.
您可以使用角色地图程序轻松检查:
