本篇文章是對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中文網其他相關文章!