大家好,下面给出的代码我想测试的字符串是英文还是古吉拉特语。但程序提供错误输出我该如何解决?如果字符是ASCII是从0A80-0AFF这个长度然后认为古吉拉特人认为是英语。
代码:
if (!preg_match('/[^A-Za-z0-9]/', $Query)){
echo 'English';
}
else{
echo 'Gujarati';
}
输入:
A/4
输出:
Gujarati
预期产出:
English
答案 0 :(得分:2)
如果您只有英语和古吉拉特语,为什么不反过来呢?
if (preg_match('/\x{0A80}-\x{0AFF}/u', $Query)){
echo 'Gujarati';
}
else{
echo 'English';
}
基本上,如果您使用古吉拉特语语言中的一个字符,则会将其检测为Gujarati
,否则它将为English
。但请注意,月
,ありがとう
,élève
等也会被视为英语
查看此Unicode图表:https://unicode.org/charts/PDF/U0A80.pdf以准确定义必须考虑的范围。
<强>说明强>:
\x{0A80}-\x{0AFF}
匹配代码点U+0A80
和U+0AFF
/u
用于regex中的Unicode支持