导航:首页 > 编程语言 > 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
一捏就变形的解压玩具怎么折 浏览:196
易融贷app借钱怎么 浏览:939
单片机侧重点 浏览:867
江苏惠普服务器虚拟化设计云主机 浏览:647
在欧拉app好猫充电桩怎么申请 浏览:449
反编译代码教程 浏览:798
linuxio阻塞 浏览:973
8脚单片机pic 浏览:821
如何看彩色涂鸦遮住的字安卓 浏览:688
摆渡机器人编程 浏览:654
软程序员着装 浏览:139
宝鸡云存储服务器 浏览:668
推荐超解压游戏无广告 浏览:634
大华服务器怎么添加门禁 浏览:784
战地服务器60hz什么意思 浏览:760
成高级程序员学什么 浏览:501
阿里云接入备案后退掉服务器 浏览:928
ne40e命令 浏览:85
安卓输入法使用什么编码 浏览:184