首頁 >後端開發 >PHP問題 >php preg_match會匹配幾次

php preg_match會匹配幾次

青灯夜游
青灯夜游原創
2022-03-21 20:01:231937瀏覽

php preg_match()函數會符合1次。 preg_match()函數用於根據正規表示式對字串進行搜尋匹配,可以返回匹配次數;preg_match()的值將是0次(不匹配)或1次,因為它在第一次匹配後將會停止搜尋.

php preg_match會匹配幾次

本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦

php preg_match()函數會匹配1次。

php preg_match()函數

PHP 中的preg_match() 函數可以根據正規表示式對字串進行搜尋匹配,函數的語法格式如下:

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

參數說明如下:

  • $pattern:要搜尋的模式,也就是編輯好的正規表示式;

  • $subject:要搜尋的字串;

  • $matches:可選參數(陣列類型),如果提供了$matches,它將被填入搜尋結果。 $matches[0] 包含完整模式匹配到的文本, $matches[1] 包含第一個捕獲子組匹配到的文本,以此類推;

  • $flags:可選參數,$flags 可以被設定為PREG_OFFSET_CAPTURE,如果傳遞了這個標記,對於每一個出現的匹配,返回時都會附加上字串偏移量(相對於目標字串的);

  • #$offset:可選參數,用於指定從目標字串的哪個位置開始搜尋(單位是位元組)。

preg_match() 函數可以傳回$pattern 的符合次數,它的值將是0 次(不符)或1 次,因為preg_match() 在第一次符合後將會停止搜尋。

範例:使用preg_match() 函數搜尋一個字串

<?php
    $subject = "abcdefghijkdef";
    $pattern_1 = &#39;/def/&#39;;
    $num = preg_match($pattern_1, $subject, $matches_1,PREG_OFFSET_CAPTURE,8);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($matches_1);
    var_dump($num);   //匹配次数为1次
    $pattern_2 = &#39;/def$/&#39;;
    $num = preg_match($pattern_2, $subject, $matches_2, PREG_OFFSET_CAPTURE, 3);
    var_dump($matches_2);
?>

php preg_match會匹配幾次

對於第一次匹配,將從字串的第8 位元搜尋與$pattern_1 相符的子字串,$matches_2 陣列中包含符合得到的子字串和其出現在目標字串中的位置。

注意第二次正規表示式與第一次的正規表示式不同,其中加了一個定位符號$,表示符合字串結尾處的位置。

推薦學習:《PHP影片教學

以上是php preg_match會匹配幾次的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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