我最近在弄php的正则表达式中文匹配
发现在GB2312下是正常的,但是在UTF-8下,始终是false
<? $str = "超越";
if(preg_match("/^[^x00-xff]+$/", $str)) {
echo "这是一个纯中文字符串<br>";
} else {
echo "这不是一个纯中文字串<br>";
}?>
而且在GB2312下,中文是当作2个字符,而在UTF-8下中文是被当作3个字符的
例: GB2312 echo substr($str,0,2) ---- 超
而UTF-8 echo substr($str,0,3) ---- 超
谁知道在UTF-8下匹配双字节的正则表达式怎么写啊
发现在GB2312下是正常的,但是在UTF-8下,始终是false
<? $str = "超越";
if(preg_match("/^[^x00-xff]+$/", $str)) {
echo "这是一个纯中文字符串<br>";
} else {
echo "这不是一个纯中文字串<br>";
}?>
而且在GB2312下,中文是当作2个字符,而在UTF-8下中文是被当作3个字符的
例: GB2312 echo substr($str,0,2) ---- 超
而UTF-8 echo substr($str,0,3) ---- 超
谁知道在UTF-8下匹配双字节的正则表达式怎么写啊
我也试了,也实在是FALSE