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

熱點內容
高三倒計時緩解壓力 瀏覽:619
一捏就變形的解壓玩具怎麼折 瀏覽: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