Php 多语言数字字符算字母吗?
我正在尝试搜索其他语言中的字母和空格(简单单词),如果我找到数字或标点符号,就会抛出一个检测异常。当测试我用在维基百科上找到的UTF-8数字字符编写的正则表达式时,我的结果总是匹配的,我很困惑为什么,除非它认为所有数字都是字母 以下是我尝试过的角色: 5或伍 5或 代码如下:Php 多语言数字字符算字母吗?,php,regex,utf-8,Php,Regex,Utf 8,我正在尝试搜索其他语言中的字母和空格(简单单词),如果我找到数字或标点符号,就会抛出一个检测异常。当测试我用在维基百科上找到的UTF-8数字字符编写的正则表达式时,我的结果总是匹配的,我很困惑为什么,除非它认为所有数字都是字母 以下是我尝试过的角色: 5或伍 5或 代码如下: $were_bad_characters_found = preg_match('/[^\p{L}\p{Zs}]+/us', $data); 它问的问题的答案总是,不,没有发现坏角色 从文档上看,这似乎是可行的,
$were_bad_characters_found = preg_match('/[^\p{L}\p{Zs}]+/us', $data);
它问的问题的答案总是,不,没有发现坏角色
从文档上看,这似乎是可行的,事实上,当我试着用简单的英文数字通过它时,它确实可行,但一旦多语言字符出现,它就会滚到我身上。我在这方面有很多变体,用于检测不同的常见场景,所有utf8正则表达式代码似乎只适用于英语字符。思想?你展示的人物是字母
- ,不是数字,具有非数字解释
- 不是一个数字,但也不接近任何类型的数字解释
把它变成一个数字而不是一个字母。在PHP中,您可以使用
\p{Nd}
来匹配数字。但是您的正则表达式工作正常。谢谢您的快速回复。你能提供一些不是字母的数字吗?维基把我引入歧途。如果没有可测试的工作数据,我很难测试这段代码。@JeffreyGilbert查看此xml文件中的数字属性,并使用这些字符进行测试