PHP में रेगुलर एक्सप्रेशन रिप्लेसमेंट में कैप्चर ग्रुप
preg_replace फ़ंक्शन के साथ काम करते समय,
अगर हम रेगुलर एक्सप्रेशन में कुछ कैप्चर ग्रुप में रखते हैं,
तो रिप्लेसमेंट स्ट्रिंग में हम उस कैप्चर ग्रुप की सामग्री
डॉलर चिह्न $ और कैप्चर ग्रुप नंबर लिखकर डाल सकते हैं।
उदाहरण के लिए, $0 - शून्य कैप्चर ग्रुप,
$1 - पहला कैप्चर ग्रुप, $2 - दूसरा
कैप्चर ग्रुप और इसी तरह आगे।
इसकी क्या आवश्यकता है और इसका उपयोग कैसे करें, आइए उदाहरणों पर नज़र डालें।
उदाहरण
आइए सभी नंबरों को ढूंढें और उनके स्थान पर उन्हीं नंबरों को लेकिन कर्ली ब्रेसिज़ में डालें। इसके लिए पाए गए सभी नंबरों को हम उन्हीं के स्थान पर रिप्लेस करेंगे, लेकिन कर्ली ब्रेसिज़ में:
<?php
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
नतीजतन वेरिएबल में निम्नलिखित लिखा जाएगा:
'{1} {23} {456} xax'
उदाहरण
आइए ऐसी सभी स्ट्रिंग्स ढूंढें जो चारों ओर
इक्स के साथ नंबरों का प्रतिनिधित्व करती हैं और इन
नंबरों को उन्हीं के स्थान पर रिप्लेस करें, लेकिन '!' चिह्नों के साथ चारों ओर:
<?php
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
नतीजतन वेरिएबल में निम्नलिखित लिखा जाएगा:
'!1! !23! !456! xax'
उदाहरण
आइए निम्नलिखित कार्य को हल करें: 'aaa@bbb' प्रकार की स्ट्रिंग्स दी गई हैं
- अक्षर, फिर एट साइन,
फिर अक्षर। '@' से पहले और बाद के अक्षरों
को आपस में बदलना है। इसे लागू करते हैं:
<?php
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
नतीजतन वेरिएबल में निम्नलिखित लिखा जाएगा:
'bbb@aaa ddd@ccc'
प्रायोगिक कार्य
एक स्ट्रिंग दी गई है:
<?php
$str = '12 34 56 78';
?>
सभी दो-अंकीय नंबरों में अंकों के स्थान आपस में बदलें।
तारीख के साथ एक स्ट्रिंग दी गई है:
<?php
$str = '31.12.2025';
?>
इस तारीख को '2025.12.31' में बदलें।