首頁 >後端開發 >PHP問題 >淺談PHP中preg_match與preg_match_all函數的不同

淺談PHP中preg_match與preg_match_all函數的不同

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-03-23 11:57:332590瀏覽

本篇文章是對php正規表示式中的preg_match函數與preg_match_all函數進行了分析介紹,需要的朋友參考下。

淺談PHP中preg_match與preg_match_all函數的不同

preg_match_all()函數

按指定的正規表示式,在給定的字串中進行搜索,匹配到符合特徵的部分取出。

$pattern='/t(.*?)st/';
$str='tgvregbvst      test    tdst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);

我們可以看到輸出結果是:

int(3) array(2) { [0]=> array(3) { [0]=> string(10) "tgvregbvst" [1]=> string(4) "test" [2]=> string(4) "tdst" } [1]=> array(3) { [0]=> string(7) "gvregbv" [1]=> string(1) "e" [2]=> string(1) "d" } }

他把符合條件的都給列了出來,而preg_match()函數不一樣。

preg_match()函數

執行一個正規表示式匹配,傳回 pattern的匹配次數。它的值將是0次(不匹配)或1次,因為preg_match()在第一次匹配後將會停止搜尋。

$pattern='/t(.*?)st/';
$str='tgvregbvst      test    tdst';
var_dump(preg_match($pattern,$str,$arr));
var_dump($arr);

我們可以看到輸出結果是:

int(1) array(2) { [0]=> string(10) "tgvregbvst" [1]=> string(7) "gvregbv" }

比相比上一個函數,這個函數輸出結果少了很多,這正是他們的不同之處。

preg_match_all()不同於preg_match()函數,它會一直搜尋subject直到到達結尾。如果發生錯誤preg_match()回傳false

推薦學習:《PHP影片教學

以上是淺談PHP中preg_match與preg_match_all函數的不同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn