溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php如何利用正則只匹配漢字

發(fā)布時(shí)間:2023-02-24 10:17:46 來源:億速云 閱讀:125 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“php如何利用正則只匹配漢字”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“php如何利用正則只匹配漢字”文章能幫助大家解決問題。

在php中,可以利用正則表達(dá)式“/[\x{4e00}-\x{9fff}]+/u”和preg_match_all()函數(shù)來只匹配漢字,語(yǔ)法“preg_match_all("/[\x{4e00}-\x{9fff}”。preg_match_all()函數(shù)會(huì)搜索字符串中所有可以和正則表達(dá)式匹配的結(jié)果,配合“/[\x{4e00}-\x{9fff}]+/u”可以過濾字符串,只獲取漢字字符。

在php中,可以利用正則表達(dá)式“/[\x{4e00}-\x{9fff}]+/u”和preg_match_all()函數(shù)來只匹配漢字。

preg_match_all()函數(shù)會(huì)搜索字符串中所有可以和正則表達(dá)式匹配的結(jié)果

preg_match_all(pattern,subject,matches,flags,offset)

參數(shù)說明如下:

  • pattern:要搜索的模式,也就是定義好的正則表達(dá)式;

  • subject:要搜索的字符串;

  • matches:可選參數(shù)(多維數(shù)組),用來存放所有匹配的結(jié)果, 數(shù)組排序通過 $flags 指定;

  • flags:可選參數(shù),可以結(jié)合下面幾個(gè)標(biāo)記使用(注意不能同時(shí)使用 PREG_PATTERN_ORDER 和 PREG_SET_ORDER):

    • PREG_PATTERN_ORDER:結(jié)果排序?yàn)?$matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一個(gè)子組的所有匹配,以此類推。

    • PREG_SET_ORDER:結(jié)果排序?yàn)?$matches[0] 包含第一次匹配得到的所有匹配(包含子組), $matches[1] 是包含第二次匹配到的所有匹配(包含子組)的數(shù)組,以此類推。

    • PREG_OFFSET_CAPTURE:如果這個(gè)標(biāo)記被傳遞,每個(gè)發(fā)現(xiàn)的匹配返回時(shí)會(huì)增加它相對(duì)目標(biāo)字符串的偏移量。注意這會(huì)改變 $matches 中的每一個(gè)匹配結(jié)果字符串元素,使其成為一個(gè)第 0 個(gè)元素為匹配結(jié)果字符串,第 1 個(gè)元素為匹配結(jié)果字符串在 subject 中的偏移量。

  • offset:可選參數(shù),$offset 用于從目標(biāo)字符串中指定位置開始搜索(單位是字節(jié))。

preg_match_all() 函數(shù)可以返回 pattern 的匹配次數(shù)(可能是 0),如果發(fā)生錯(cuò)誤則返回 FALSE。

preg_match_all()函數(shù)配合正則表達(dá)式“/[\x{4e00}-\x{9fff}]+/u”可以過濾字符串,只獲取漢字字符。

注:preg_match_all()函數(shù)會(huì)將匹配的函數(shù)字符一個(gè)個(gè)存入數(shù)組中(該數(shù)組由第三個(gè)參數(shù)指定)。

<?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如何利用正則只匹配漢字

此時(shí)可以使用 implode()函數(shù)將結(jié)果值拼接成一個(gè)字符串。

implode('',$arr[0])

php如何利用正則只匹配漢字

擴(kuò)展知識(shí):implode()函數(shù)

implode() 函數(shù)返回一個(gè)由數(shù)組元素組合成的字符串。

implode(separator,array)

  • separator:可選。規(guī)定數(shù)組元素之間放置的內(nèi)容。默認(rèn)是 ""(空字符串)。

  • array:必需。要組合為字符串的數(shù)組。

返回值:返回一個(gè)由數(shù)組元素組合成的字符串。

還有一個(gè)和 implode() 函數(shù)功能相同的函數(shù):join() ,join() 函數(shù)是 implode() 函數(shù)的別名。

關(guān)于“php如何利用正則只匹配漢字”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI