PHP में रेगुलर एक्सप्रेशन में सिंबल ग्रुप

विशेष कमांड होते हैं जो पूरे वर्ण समूहों को एक साथ चुनने की अनुमति देते हैं। कमांड \d 0 से 9 तक का अंक दर्शाता है। कमांड \w एक अंक, लैटिन वर्ण या अंडरस्कोर प्रतीक को दर्शाता है। कमांड \s एक स्पेस या व्हाइटस्पेस सिंबल को दर्शाता है: स्पेस, नई लाइन, टैब। कमांड के मूल्य को बड़ा अक्षर लिखकर उलटा किया जा सकता है: उदाहरण के लिए, यदि \d - अंक है, तो \D - गैर-अंक है।

उदाहरण

आइए सभी अंक ढूंढते हैं:

php<?php
  $str = '1 12 123';
  $res = preg_replace('#\d#', '!', $str);
?>

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'! !! !!!'

उदाहरण

पुनरावृत्ति ऑपरेटर कमांड-समूहों को एक संपूर्ण मानते हैं, यानी ग्रुपिंग ब्रैकेट की आवश्यकता नहीं होती। निम्नलिखित उदाहरण में सर्च पैटर्न इस तरह दिखता है: 0 से 9 तक का अंक एक या अधिक बार:

php<?php
  $str = '1 12 123 abc @@@';
  res = preg_replace('#\d+#', '!', $str);
?>

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'! ! ! abc @@@'

उदाहरण

निम्नलिखित उदाहरण में सर्च पैटर्न इस तरह दिखता है: कुछ भी एक या अधिक बार, लेकिन 0 से 9 तक का अंक नहीं:

php<?php
  $str = '123abc3@@';
  $res = preg_replace('#\D+#', '!', $str);
?>

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'123!3!'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: व्हाइटस्पेस सिंबल एक बार:

php<?php
  $str = '1 12 123 abc @@@';
  $res = preg_replace('#\s#', '!', $str);
?>

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'1!12!123!abc!@@@'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: गैर-व्हाइटस्पेस सिंबल एक या अधिक बार। स्पेस से अलग की गई सभी सबस्ट्रिंग '!' से बदल दी जाएंगी:

php<?php
  $str = '1 12 123 abc @@@';
  $res = preg_replace('#\S+#', '!', $str);
?>

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'! ! ! ! !'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: अंक या अक्षर एक या अधिक बार। अंकों और अक्षरों से बनी सभी सबस्ट्रिंग '!' से बदल दी जाएंगी:

php<?php
  $str = '1 12 123a Abc @@@';
  $res = preg_replace('#\w+#', '!', $str);
?>

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'! ! ! ! @@@'

उदाहरण

इस उदाहरण में सर्च पैटर्न इस तरह दिखता है: गैर-अंक और गैर-अक्षर एक या अधिक बार। हमारे मामले में यह परिभाषा '@@@' और सभी स्पेस (क्योंकि वे भी न तो अंक हैं और न ही अक्षर) पर लागू होती है। इस बात पर ध्यान दें कि अंत में एक '!' है - इसमें स्ट्रिंग ' @@@' - सामने वाले स्पेस के साथ रूपांतरित हो गई है:

php$str = '1 12 123 Abc @@@';
$res = preg_replace('#\W+#', '!', $str);

परिणामस्वरूप, वेरिएबल में निम्नलिखित लिखा जाएगा:

php'1!12!123!Abc!'

व्यावहारिक कार्य

Задание 1

एक स्ट्रिंग दी गई है:

php<?php
  $str = 'a1a a2a a3a a4a a5a aba aca';
?>

एक रेगुलर एक्सप्रेशन लिखें जो उन स्ट्रिंग्स को ढूंढे, जिनमें किनारों पर अक्षर 'a' होते हैं, और उनके बीच एक अंक होता है।

Задание 2

एक स्ट्रिंग दी गई है:

php<?php
  $str = 'a1a a22a a333a a4444a a55555a aba aca';
?>

एक रेगुलर एक्सप्रेशन लिखें जो उन स्ट्रिंग्स को ढूंढे, जिनमें किनारों पर अक्षर 'a' होते हैं, और उनके बीच कोई भी संख्या में अंक होते हैं।

Задание 3

एक स्ट्रिंग दी गई है:

php<?php
  $str = 'aa a1a a22a a333a a4444a a55555a aba aca';
?>

एक रेगुलर एक्सप्रेशन लिखें जो उन स्ट्रिंग्स को ढूंढे, जिनमें किनारों पर अक्षर 'a' होते हैं, और उनके बीच कोई भी संख्या में अंक होते हैं (इसमें शून्य अंक भी शामिल हैं, यानी स्ट्रिंग 'aa')।

Задание 4

एक स्ट्रिंग दी गई है:

php<?php
  $str = 'avb a1b a2b a3b a4b a5b abb acb';
?>

एक रेगुलर एक्सप्रेशन लिखें जो निम्न प्रकार की स्ट्रिंग्स ढूंढे: किनारों पर अक्षर 'a' और 'b' होते हैं, और उनके बीच - कोई अंक नहीं होता।

Задание 5

एक स्ट्रिंग दी गई है:

php<?php
  $str = 'ave a#b a2b a$b a4b a5b a-b acb';
?>

एक रेगुलर एक्सप्रेशन लिखें जो निम्न प्रकार की स्ट्रिंग्स ढूंढे: किनारों पर अक्षर 'a' और 'b' होते हैं, और उनके बीच - कोई अक्षर या अंक नहीं होता।

Задание 6

एक स्ट्रिंग दी गई है:

php<?php
  $str = 'ave a#a a2a a$a a4a a5a a-a aca';
?>

एक रेगुलर एक्सप्रेशन लिखें जो सभी स्पेस को '!' से बदल देगा।