导航:首页 > 编程语言 > 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正则提取中文相关的资料

热点内容
服务器如何调用全部cpu计算 浏览:80
如何搜索AppID 浏览:788
组装电脑水冷解压 浏览:276
珠海存储服务器地址怎么找 浏览:413
md5算法字符串长度 浏览:5
可以二次虚化的云服务器 浏览:779
思科2500编程器固件 浏览:236
php开发桌面应用程序 浏览:905
支付宝app哪里可以加油 浏览:71
路由器ttl刷编程器固件 浏览:719
纵向加密密钥协商状态时间 浏览:851
mc花雨庭服务器有些什么 浏览:809
linux制作网页 浏览:19
xlsx加密忘记了怎么办 浏览:999
app湖北农信怎么解约 浏览:426
在线编程教育项目 浏览:759
电信采购5万台服务器干什么用 浏览:201
腾讯云服务器登录地址 浏览:988
程序员在地铁上写字 浏览:555
解压包未知文件格式怎么办 浏览:579