फ़ंक्शन preg_match_all

फ़ंक्शन preg_match_all एक स्ट्रिंग में पैटर्न की वैश्विक खोज करता है। पहले पैरामीटर में रेगुलर एक्सप्रेशन पास किया जाता है, दूसरे में - खोज के लिए स्ट्रिंग, तीसरे में - परिणामों को सहेजने के लिए ऐरे। चौथा वैकल्पिक पैरामीटर लौटाई गई संरचना के प्रकार को निर्धारित करता है, और पाँचवाँ वैकल्पिक पैरामीटर - खोज की शुरुआत का ऑफ़सेट।

सिंटैक्स

phppreg_match_all(pattern, subject, matches, [flags], [offset]);

फ्लैग्स

आइए देखें कि चौथा पैरामीटर कौन से मान ले सकता है:

पैरामीटर विवरण
PREG_PATTERN_ORDER डिफ़ॉल्ट मोड। परिणाम ग्रुपों (कारमैन) द्वारा समूहीकृत किए जाते हैं - ऐरे का शून्यवाँ एलिमेंट शून्यवाँ ग्रुप (कारमैन) रखता है, पहला एलिमेंट ऐरे पहले ग्रुप (कारमैन) रखता है और इसी तरह आगे।
PREG_SET_ORDER परिणाम मिलानों द्वारा समूहीकृत किए जाते हैं - ऐरे का प्रत्येक एलिमेंट पाए गए ग्रुपों (कारमैन) वाला एक ऐरे रखता है।
PREG_OFFSET_CAPTURE प्रत्येक मिलान के लिए स्ट्रिंग में स्थिति लौटाई जाती है। प्रत्येक परिणाम एक ऐरे को दर्शाता है, जहाँ शून्यवाँ एलिमेंट मिलान रखता है, और पहला - इसका ऑफ़सेट।
PREG_UNMATCHED_AS_NULL बिना मिले ग्रुप (कारमैन) null के रूप में लौटाए जाते हैं, खाली स्ट्रिंग्स के बजाय।

उदाहरण

आइए एक स्ट्रिंग में सभी अंक ढूंढते हैं:

php<?php
  $str = 'abc 123 def 456';
  preg_match_all('/\d+/', $str, $res);
  var_dump($res[0]);
?>

कोड निष्पादन का परिणाम:

php['123', '456']

उदाहरण

आइए एक स्ट्रिंग में सभी अक्षर 'a' ढूंढते हैं:

php<?php
  $str = 'banana';
  preg_match_all('/a/', $str, $res);
  var_dump($res[0]);
?>

कोड निष्पादन का परिणाम:

php['a', 'a', 'a']

उदाहरण

आइए एक स्ट्रिंग से सभी टाइमस्टैम्प्स और उनके घटक निकालते हैं:

php<?php
  $time = '12:01:02 13:03:04 14:05:06';
  preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res);
  var_dump($res);
?>

कोड निष्पादन का परिणाम:

php[
  0 => ['12:01:02', '13:03:04', '14:05:06'],
  1 => ['12', '13', '14'],
  2 => ['01', '03', '05'],
  3 => ['02', '04', '06']
]

उदाहरण

और अब मिलानों द्वारा समूहीकरण के लिए फ्लैग PREG_SET_ORDER का उपयोग करते हैं:

php<?php
  $time = '12:01:02 13:03:04 14:05:06';
  preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res, PREG_SET_ORDER);
  var_dump($res);
?>

कोड निष्पादन का परिणाम:

php[
  0 => '12:01:02',
  1 => '12',
  2 => '01',
  3 => '02'
],
[
  0 => '13:03:04',
  1 => '13',
  2 => '03',
  3 => '04'
],
[
  0 => '14:05:06',
  1 => '14',
  2 => '05',
  3 => '06'
]

यह भी देखें

  • फ़ंक्शन preg_match,
    जो रेगुलर एक्सप्रेशन से पहला मिलान ढूंढता है
  • फ़ंक्शन preg_replace,
    जो रेगुलर एक्सप्रेशन के अनुसार खोज और प्रतिस्थापन करता है