真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素

這篇文章主要介紹“怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素”,在日常操作中,相信很多人在怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

站在用戶的角度思考問題,與客戶深入溝通,找到鹽城網(wǎng)站設(shè)計與鹽城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鹽城地區(qū)。

怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素

preg_match_all()函數(shù)

之前我們只介紹了preg_match() 函數(shù)這一種基礎(chǔ)函數(shù),在 PHP 中還有一個和 preg_match() 函數(shù)極為類似的函數(shù)——preg_match_all(),該函數(shù)可以搜索字符串中所有可以和正則表達式匹配的結(jié)果。

該函數(shù)的語法格式如下:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])

其中需要注意的是:

$pattern表示要搜索的模式,也就是定義好的正則表達式;$subject表示要搜索的字符串;$matches表示可選參數(shù)是個多維數(shù)組,用來存放所有匹配的結(jié)果, 數(shù)組排序通過 $flags 指定;$offset表示可選參數(shù),$offset 用于從目標字符串中指定位置開始搜索,它的單位是字節(jié)。

$flags表示可選參數(shù),其中它可以結(jié)合下面幾個標記使用,

  • PREG_PATTERN_ORDER

結(jié)果排序為 $matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一個子組的所有匹配,以此類推。

  • PREG_SET_ORDER

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

  • PREG_OFFSET_CAPTURE

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

其中不能同時使用 PREG_PATTERN_ORDER PREG_SET_ORDER,preg_match_all() 函數(shù)可以返回 $pattern 的匹配次數(shù)(可能是 0),如果發(fā)生錯誤則返回 FALSE

接下來我們通過示例來看一下preg_match_all() 函數(shù)的應(yīng)用,匹配一個字符串,示例如下:

";
    var_dump($matches_1);
    var_dump($num_1);
    $pattern_2 = '/(def)(abc)/';
    $num_2 = preg_match_all($pattern_2, $subject, $matches_2,PREG_OFFSET_CAPTURE, 3);
    var_dump($matches_2);
    var_dump($num_2);
?>

輸出結(jié)果:

怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素

由上述示例中,我們便完成了通過preg_match_all() 函數(shù)來匹配一個字符串。通過preg_match_all() 函數(shù)的應(yīng)用,可以完成全局正則表達式匹配。

那接下來那我們看一下怎樣完成檢測與給定模式匹配的數(shù)組元素。這時候就要用到preg_grep() 函數(shù)了。

preg_grep()函數(shù)

使用正則表達式除了可以匹配字符串外,還可以匹配數(shù)組中的元素。PHP 中的 preg_grep() 函數(shù)可以搜索數(shù)組中的所有元素,并返回與正則表達式匹配的所有元素所組成的數(shù)組。該函數(shù)的語法格式如下:

preg_grep($pattern, $input [, $flags = 0 ])

其中需要注意的是:

$pattern表示要搜索的模式,也就是定義好的正則表達式;$input表示要搜索的數(shù)組;$flags表示可選參數(shù),可以設(shè)置為 PREG_GREP_INVERT,這時函數(shù)會返回數(shù)組中與給定模式 $pattern 不匹配的元素組成的數(shù)組。perg_grep() 函數(shù)將遍歷 $input 數(shù)組中的每一個元素,讓該元素與模式 $pattern 進行匹配,然后將匹配成功或者匹配失敗的元素返回。

接下來,我們通過示例來看一下使用 perg_grep() 函數(shù)匹配數(shù)組中的元素,示例如下:

';
    var_dump($preg_arr_1);
    var_dump($preg_arr_2);
?>

輸出結(jié)果:

怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素

上述示例便是通過preg_grep() 函數(shù)匹配數(shù)組中的元素。

到此,關(guān)于“怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
新聞名稱:怎么使用PHP中全局正則表達式匹配及匹配數(shù)組元素
當前鏈接:http://weahome.cn/article/pdgdjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部