導航:首頁 > 編程語言 > 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正則提取中文相關的資料

熱點內容
資料庫查詢系統源碼 瀏覽:612
php5314 瀏覽:352
完美國際安裝到哪個文件夾 瀏覽:664
什麼app可以掃一掃做題 瀏覽:535
程序員編碼論壇 瀏覽:921
淘點是什麼app 瀏覽:656
中國高等植物pdf 瀏覽:451
51單片機時間 瀏覽:179
後台如何獲取伺服器ip 瀏覽:262
單片機流水燈程序c語言 瀏覽:230
程序員第二職業掙錢 瀏覽:237
運行里怎麼輸入伺服器路徑 瀏覽:835
pythonstepwise 瀏覽:506
劉一男詞彙速記指南pdf 瀏覽:59
php認證級別 瀏覽:364
方舟編譯啥時候推送 瀏覽:1007
php手機驗證碼生成 瀏覽:672
哲學思維pdf 瀏覽:13
凌達壓縮機有限公司招聘 瀏覽:531
weblogic命令部署 瀏覽:33