老刘笔记老刘笔记

欢迎光临
我们一直在努力!

php正则表达式匹配中文汉字

正则表达式匹配汉字

在正则表达式中,汉字属于Unicode编码范围内的字符,可以使用Unicode编码进行匹配。
例如,要匹配“你好”,可以使用正则表达式/[\u4e00-\u9fa5]/,
其中\u4e00表示第一个汉字的Unicode编码,\u9fa5表示最后一个汉字的Unicode编码。

实战:
header('Content-type: text/html; charset=UTF-8');
$pattern = '/[\x{4e00}-\x{9fa5}]/u';
$str = '中文汉字字符串123456';
preg_match($pattern, $str, $matches);
print_r($matches);
结果:匹配成功
Array
(
    [0] => 中
)
utf-8编码环境
php中,是用\x表示十六进制数据的。

– `\x{4e00}` 是中文字符的Unicode编码起始值;
– `\x{9fa5}` 是中文字符的Unicode编码结束值;
– `[]` 表示字符集,里面的 `\x{4e00}-\x{9fa5}` 表示从 `\x{4e00}` 到 `\x{9fa5}` 这个范围的字符;
– `+` 表示匹配一个或多个字符;
– `/u` 告诉正则表达式引擎使用UTF-8编码

在上面的例子中,使用了 "u" 模式修饰符来支持 Unicode 字符编码,从而匹配中文字符。
在 PHP 中使用正则表达式匹配中文,需要考虑中文字符的 Unicode 编码范围,
常用的是 [\x{4e00}-\x{9fa5}],其中 \x{4e00} 表示汉字 "一" 的 Unicode 编码,
\x{9fa5} 表示汉字 "髙" 的 Unicode 编码。
这个范围包含了大部分的中文字符。

UTF-8 (Unicode)

u4e00-u9fa5 (中文)
x3130-x318F (韩文)
xAC00-xD7A3 (韩文)
u0800-u4e00 (日文)

实战:

$str=preg_replace('/[^\x{4e00}-\x{9fa5}]/iu','',$str);
提取中文汉字

$str=preg_replace('/[\x{4e00}-\x{9fa5}]/iu','',$str]);
提取非中文汉字

文章链接https://www.rjyl100.cn/detail/125.html
版权声明:文章由本站原创或网友分享,禁止转载!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请与我们联系,我们将及时更正、删除,谢谢。
温馨提示本站信息来自互联网或网友分享,请大家查阅时,谨慎选择、自辩真伪,自负责任。

梦想还是要有的,万一实现了呢?老刘笔记,感谢有您陪伴!