PHP में रेगुलर एक्सप्रेशन में 'या' कमांड

इस पाठ में हम कमांड | को समझेंगे, जो कमांड [] की तुलना में या का एक अधिक शक्तिशाली संस्करण है। यह कमांड रेगुलर एक्सप्रेशन को कई भागों में विभाजित करने की अनुमति देती है। इस स्थिति में, खोजा जाने वाला पैटर्न या तो रेगुलर एक्सप्रेशन के एक भाग के अंतर्गत आ सकता है, या दूसरे भाग के अंतर्गत। आइए उदाहरणों से समझते हैं।

उदाहरण

इस उदाहरण में, खोज पैटर्न इस प्रकार है: तीन अक्षर 'a' या तीन अक्षर 'b':

php<?php
  $str = 'aaa bbb abb';
  $res = preg_replace('#a{3}|b{3}#', '!', $str);
?>

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

php'! ! abb'

उदाहरण

इस उदाहरण में, खोज पैटर्न इस प्रकार है: तीन अक्षर 'a' या 1 और अधिक अक्षर 'b':

php<?php
  $str = 'aaa bbb bbbb bbbbb axx';
  $res = preg_replace('#a{3}|b+#', '!', $str);
?>

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

php'! ! ! ! axx'

उदाहरण

इस उदाहरण में, खोज पैटर्न इस प्रकार है: एक या अधिक अक्षर या तीन अंक:

php<?php
  $str = 'a ab abc 1 12 123';
  $res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>

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

php'! ! ! 1 12 !'

उदाहरण

वर्टिकल बार रेगुलर एक्सप्रेशन को केवल दो भागों में ही नहीं, बल्कि कितने भी भागों में विभाजित कर सकती है:

php<?php
  $str = 'aaa bbb ccc ddd';
  $res = preg_replace('#a+|b+|c+#', '!', $str);
?>

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

php'! ! ! ddd'

उदाहरण

यदि वर्टिकल बार गोल कोष्ठकों के अंदर है, तो 'या' केवल उन कोष्ठकों के अंदर ही काम करता है। उदाहरण के लिए, आइए निम्नलिखित पैटर्न के अनुसार स्ट्रिंग्स ढूंढें: शुरुआत में या तो 'a', या 'b' एक या अधिक बार हो, और उसके बाद दो अक्षर 'x' हों:

php<?php
  $str = 'axx bxx bbxx exx';
  $res = preg_replace('#(a|b+)xx#', '!', $str);
?>

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

php'! ! ! exx'

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

Задание 1

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

php<?php
  $str = 'aeeea aeea aea axa axxa axxxa';
?>

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

Задание 2

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

php<?php
  $str = 'aeeea aeea aea axa axxa axxxa';
?>

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