导航:首页 > 编程语言 > php正则提取中文

php正则提取中文

发布时间:2023-06-01 20:53:27

php中怎样只获取汉字

我这个测试了一下,支持GB2312编码和UTF-8编码,其他编码下思路类似,只是要找下编码的起始值就可以了。

function match_chinese($chars,$encoding='utf8'){
$pattern =($encoding=='utf8')?'/[\x{4e00}-\x{9fa5}]/u':'/[\x80-\xFF]/';
preg_match_all($pattern,$chars,$result);
$temp =join('',$result[0]);
return $temp;
}

调用:
$str ="中文汉字English Chars数字12131321";

//UTF-8编码下
echo match_chinese($str);
//gb2312编码下
echo match_chinese($str,'gb2312');

❷ php正则表达式匹配一段中文,中间有换行,空白,应该怎么写

有多种处理方法:

1、使用[sS]匹配任意字符,而不是使用“.”
2、使用s单行修饰模式,例:$pattern='#abc.*?def#s';//能匹配abc换行def
3、使用s*匹配换行和空格,php里s能匹配空白字符,含换行

php里的中文使用[x7f-xff]表示,因此,使用正则:

$pattern='#[x7f-xff]+(?:s*[x7f-xff]+)*#';即可

❸ php中文正则匹配

php中utf-8编码下用正则表达式匹配汉字的最终正确表达式——/^[\x{4e00}-\x{9fa5}]+$/u,

GBK: preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str); //GB2312汉字字母数字下划线正则表达式。

编辑器查询或者 js匹配中文

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

或许你也需要匹配双字节字符,中文也是双字节的字符

匹配双字节字符(包括汉字在内):[^\x00-\xff]

❹ php 提取中文后简单分词

$str="汉字一二3四5六七八,九十六七...";

$s1=array();//初始化储存第二步结果的数组

//preg_match_all("/[x80-xff]+/",$str,$match);//此为GBK使用

preg_match_all("/[x{4e00}-x{9fa5}]{2,}+/u",$str,$match);//此为UTF-8使用

foreach($match[0]as$str1)//循环遍历匹配到的汉字

{

$leng=iconv_strlen($str1,"UTF-8");//计算汉字其长度

for($i=0;$i<$leng-1;$i++)

{

$temp=mb_substr($str1,$i,2,"UTF-8");//将汉字切割长两个字,得第一步结果

if(!in_array($temp,$s1))//去除重复,得第二步结果

$s1[]=$temp;//得到的汉字存入数组

}

}

//print_r($s1);//第一二步完成,得数组$s1,可打印查看结果

$s2=file_get_contents("21.txt");//将文件内所有字符读取成一个字符串

$s2=iconv("","UTF-8",$s2);//将字符串转码,否则难免有乱码

//echo$s2;//可输出查看文件中的内容

$s="";//初始化最终结果的变量

foreach($s1as$j)//遍历汉字对

{

if(preg_match("/".$j."/",$s2))//判断该汉字对是否被包含于文件的文字中

$s.=(""==$s)?$j:"\".$j;//将结果合在$s中

}

echo$s;//得结果,可输出查看或调用

若有疑问,可追问。

注释详细,希望能加分

❺ 用PHP正则表达式提取页面内容

<?php
$theurl="http://www.kitco.cn/cn/";
if (!($contents = file_get_contents($theurl)))
{
echo 'Could not open URL';
exit;
}

/*
$contents=preg_replace('/<.+?>/', '', $contents);
*/

if (preg_match("/<td class=\"tableHeader\" align=\"left\">原油价格([^^]*?)<\/tr>/u",$contents,$matches))
{
print "A match was found:".strip_tags($matches[0]);
} else {
print "A match was not found.<br />";
}
?>

试试这样
------------------------------------
呵呵,上边这段已经把你那行注释掉了,先找到唯一的一段代码,取出来你想要的以后以后,再去掉标签,你运行一下试试
运行结果:
A match was found:原油价格 68.11 +0.95
应该是你想要的结果吧?

阅读全文

与php正则提取中文相关的资料

热点内容
数据库查询系统源码 浏览:617
php5314 浏览:357
完美国际安装到哪个文件夹 浏览:668
什么app可以扫一扫做题 浏览:538
程序员编码论坛 浏览:923
淘点是什么app 浏览:659
中国高等植物pdf 浏览:453
51单片机时间 浏览:182
后台如何获取服务器ip 浏览:267
单片机流水灯程序c语言 浏览:234
程序员第二职业挣钱 浏览:238
运行里怎么输入服务器路径 浏览:840
pythonstepwise 浏览:509
刘一男词汇速记指南pdf 浏览:64
php认证级别 浏览:368
方舟编译啥时候推送 浏览:1011
php手机验证码生成 浏览:675
哲学思维pdf 浏览:14
凌达压缩机有限公司招聘 浏览:534
weblogic命令部署 浏览:37