两种方法:1、用preg_match_all()配合正则过滤字符串,语法“preg_match_all("/[x{4e00}-x{9fff}]+/u","$str",$arr);”;2、用preg_replace()配合正则搜索字符串中的非中文字母,并将其替换成空字符,语法“preg_replace("/[^x{4E00}-x{9FFF}]+/u",'',$str)”。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
在php中,可以利用以下两种函数来只提取字符串的中文字符
preg_replace()函数
preg_match_all()函数
立即学习“PHP免费学习笔记(深入)”;
方法1:使用preg_match_all()函数
preg_match_all()函数配合正则表达式“/[x{4e00}-x{9fff}]+/u”可以过滤字符串,只获取中文字符。
会将匹配的中文字符一个个存入数组中(该数组由第三个参数指定)。
<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^";
echo $str;
preg_match_all("/[x{4e00}-x{9fff}]+/u","$str",$arr);
var_dump($arr);
?>
然后可以使用join()函数将结果值拼接成一个字符串。
join('',$arr[0])
说明:
1)preg_match_all()函数
preg_match_all()函数会搜索字符串中所有可以和正则表达式匹配的结果
preg_match_all(pattern,subject,matches,flags,offset)
参数说明如下:
preg_match_all() 函数可以返回 pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE。
2)join()函数
10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A
524
join() 函数返回一个由数组元素组合成的字符串。
join() 函数是 implode() 函数的别名。
join(separator,array)
separator:可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array:必需。要组合为字符串的数组。
返回值:返回一个由数组元素组合成的字符串。
方法2:使用preg_replace()函数
preg_match_all()函数配合正则表达式“/[^x{4E00}-x{9FFF}]+/u”搜索字符串中的非中文字母,并将其替换成空字符''即可。
<?php
header("Content-type:text/html;charset=utf-8");
$str= 'php中文网!-=1548';
echo $str."<br>";
$pattern = "/[^x{4E00}-x{9FFF}]+/u";
$newstr=preg_replace($pattern,'', $str);preg_match_all("/[x{4e00}-x{9fff}]+/u","$str",$arr);
var_dump($newstr);
?>
说明:preg_replace()
preg_replace() 函数可以执行正则表达式的搜索和替换,是一个强大的字符串替换处理函数,该函数的语法格式如下:
preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
参数说明如下:
如果 $subject 是一个数组,preg_replace() 函数会返回一个数组,其他情况下返回一个字符串。
如果函数 preg_replace() 搜索到匹配项,则会返回被替换后的 $subject,否则返回没有改变的 $subject。preg_replace() 函数的每个参数(除了参数 $limit)都可以是一个数组。如果参数 $pattern 和参数 $replacement 都是数组,那么该函数将以其键名在数组中出现的顺序来进行处理。如果发生错误,则返回 NULL。
参数 $replacement 中可以包含后向引用 \n 或 $n,语法上首选后者。每个这样的引用将被匹配到的第 n 个捕获子组捕获到的文本替换。n 可以是 0-99,\0 和 $0 代表完整的模式匹配文本。
推荐学习:《PHP视频教程》
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号