您好,登錄后才能下訂單哦!
這篇文章主要介紹“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);
?>
此時(shí)可以使用 implode()函數(shù)將結(jié)果值拼接成一個(gè)字符串。
implode('',$arr[0])
擴(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)。
免責(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)容。