首頁 > 後端開發 > PHP問題 > php怎麼利用正規只匹配漢字

php怎麼利用正規只匹配漢字

青灯夜游
發布: 2023-03-17 22:20:02
原創
3564 人瀏覽過

在php中,可以利用正規表示式「/[\x{4e00}-\x{9fff}] /u」和preg_match_all()函式來只符合漢字,語法「preg_match_all("/[ \x{4e00}-\x{9fff}」。preg_match_all()函數會搜尋字串中所有可以和正規表示式匹配的結果,配合「/[\x{4e00}-\x{9fff}] /u 」可以過濾字串,只取得漢字字元。

php怎麼利用正規只匹配漢字

本教學操作環境:windows7系統、PHP8版、DELL G3電腦

#在php中,可以利用正規表示式「/[\x{4e00}-\x{9fff}] /u」和preg_match_all()函數來只符合漢字。

preg_match_all()函數會搜尋字串中所有可以和正規表示式匹配的結果

preg_match_all(pattern,subject,matches,flags,offset)
登入後複製

參數說明如下:

  • pattern:要搜尋的模式,也就是定義好的正規表示式;
  • subject:要搜尋的字串;
  • matches:可選參數(多維數組),用來存放所有匹配的結果, 數組排序通過$ flags 指定;
  • flags:可選參數,可以結合下面幾個標記使用(注意不能同時使用PREG_PATTERN_ORDER 和PREG_SET_ORDER):
    • PREG_PATTERN_ORDER:結果排序為$matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一個子組的所有匹配,以此類推。
    • PREG_SET_ORDER:結果排序為$matches[0] 包含第一次匹配得到的所有匹配(包含子組),$matches[1] 是包含第二次匹配到的所有匹配(包含子組)的數組,以此類推。
    • PREG_OFFSET_CAPTURE:如果這個標記被傳遞,每個發現的匹配返回時會增加它相對目標字串的偏移量。注意這會改變$matches 中的每一個匹配結果字串元素,使其成為一個第0 個元素為匹配結果字串,第1 個元素為匹配結果字串在subject 中的偏移量。
  • offset:可選參數,$offset 用於從目標字串中指定位置開始搜尋(單位是位元組)。

preg_match_all() 函數可以傳回pattern 的符合次數(可能是0),如果發生錯誤則回傳FALSE。

preg_match_all()函數配合正規表示式「/[\x{4e00}-\x{9fff}] /u」可以過濾字串,只取得漢字字符。

註:preg_match_all()函數會將符合的函數字元一個個存入數組中(該陣列由第三個參數指定)。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^";
echo $str;
preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);
var_dump($arr);
?>
登入後複製

php怎麼利用正規只匹配漢字

此時可以使用 implode()函數將結果值拼接成一個字串。

implode(&#39;&#39;,$arr[0])
登入後複製

php怎麼利用正規只匹配漢字

擴充知識:implode()函數

implode() 函數傳回一個由陣列元素組合成的字串。

implode(separator,array)
登入後複製
  • separator:可選。規定數組元素之間放置的內容。預設是 ""(空字串)。

  • array:必要。要組合為字串的陣列。

傳回值:傳回一個由陣列元素組合成的字串。    

還有一個與 implode() 函數功能相同的函數:join() ,join() 函數是 implode() 函數的別名。

推薦學習:《PHP影片教學

以上是php怎麼利用正規只匹配漢字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板