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

熱點內容
程序員脖子痛如何緩解 瀏覽:529
java加密aes對稱加密演算法 瀏覽:595
格式工廠視頻壓縮方法 瀏覽:475
編譯後的函數和原始函數如何對應 瀏覽:621
闡述郵件加密解密過程 瀏覽:400
敲沙子聲控解壓 瀏覽:54
計算機教室用什麼伺服器 瀏覽:800
華為暢享9怎麼設置簡訊加密 瀏覽:285
中國現代編譯器 瀏覽:850
如何得到app專欄 瀏覽:453
魔獸世界日本伺服器什麼職業多 瀏覽:729
表格加密怎麼設置只讀模式打開 瀏覽:884
哪個app可以不用花唄分期 瀏覽:860
SSL是對稱加密嗎 瀏覽:46
捷途app鑰匙怎麼用 瀏覽:960
享省油app怎麼在加油站使用 瀏覽:250
crc演算法的實現c語言 瀏覽:187
風光攝影pdf 瀏覽:938
頭部按摩器可以緩解壓力嗎 瀏覽:652
格式工廠壓縮圖片大小 瀏覽:892