我正在尝试仅搜索其他语言中的字母和空格(简单单词),如果我找到数字或标点符号,则抛出检测异常。在测试我用维基百科上找到的 UTF-8 数字字符编写的正则表达式时,我的结果总是匹配,我很困惑为什么除非它认为所有数字都被认为是字母。
这是我尝试过的角色:
5 或伍 http://en.wikipedia.org/wiki/Chinese_numerals
5 或Є http://en.wikipedia.org/wiki/Cyrillic_script
这是代码:
$were_bad_characters_found = preg_match('/[^\p{L}\p{Zs}]+/us', $data);
它提出的问题的答案总是,不,没有找到坏字符。
根据文档,这似乎可行,事实上,当我尝试通过它运行简单的英文数字时它确实有效,但是一旦多语言字符出现,它就会在我身上翻滚。我对此有很多变体来检测不同的常见场景,所有 utf8 正则表达式代码似乎只适用于英文字符。想法?