PHP में रेगुलर एक्सप्रेशन: टेक्स्ट के साथ काम करने के लिए शक्तिशाली उपकरण
रेगुलर एक्सप्रेशन (regex) वर्णों के अनुक्रम होते हैं जो स्ट्रिंग्स को खोजने और उनमें हेरफेर करने के लिए एक पैटर्न निर्धारित करते हैं। PHP में, वे PCRE (Perl Compatible Regular Expressions) लाइब्रेरी के माध्यम से कार्यान्वित किए जाते हैं और डेवलपर्स को डेटा सत्यापन, टेक्स्ट पार्सिंग और सबस्ट्रिंग प्रतिस्थापन के लिए लचीली क्षमताएं प्रदान करते हैं। इस लेख में, हम PHP में रेगुलर एक्सप्रेशन के मुख्य फंक्शन, सिंटैक्स और व्यावहारिक उदाहरणों पर चर्चा करेंगे।
रेगुलर एक्सप्रेशन के साथ काम करने के लिए PHP के मुख्य फंक्शन
PHP में कई प्रमुख फंक्शन हैं जो रेगुलर एक्सप्रेशन के साथ काम करने की अनुमति देते हैं। आइए उनमें से सबसे महत्वपूर्ण पर नज़र डालें।
preg_match() — पहला मिलान खोजें
फंक्शन preg_match() एक स्ट्रिंग में पैटर्न के साथ पहला मिलान ढूंढता है। यदि मिलान मिलता है तो यह 1 लौटाता है, यदि नहीं मिलता है तो 0, और त्रुटि की स्थिति में FALSE लौटाता है।
<?php$text = "मेरा ईमेल: example@mail.com और test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";
if (preg_match($pattern, $text, $matches)) { echo "ईमेल मिला: " . $matches[0]; // आउटपुट: ईमेल मिला: example@mail.com}?>preg_match_all() — सभी मिलान खोजें
preg_match() के विपरीत, यह फंक्शन स्ट्रिंग में सभी मिलान ढूंढता है और उन्हें एक बहुआयामी सरणी में रखता है।
<?php$text = "मेरा ईमेल: example@mail.com और test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";
preg_match_all($pattern, $text, $matches);print_r($matches[0]);// आउटपुट: Array ( [0] => example@mail.com [1] => test@domain.org )?>preg_replace() — पैटर्न के अनुसार बदलें
फंक्शन preg_replace() पैटर्न से मिलने वाले सभी मिलानों को निर्दिष्ट स्ट्रिंग से बदल देता है। यह बैक-रेफरेंस और मॉडिफायर्स को सपोर्ट करता है।
<?php$text = "आज 15.03.2024 है, और कल 16.03.2024 होगा";$pattern = "/(\\d{2})\\.(\\d{2})\\.(\\d{4})/";$replacement = "$3-$2-$1";
echo preg_replace($pattern, $replacement, $text);// आउटपुट: आज 2024-03-15 है, और कल 2024-03-16 होगा?>preg_split() — पैटर्न के अनुसार स्ट्रिंग को विभाजित करें
फंक्शन preg_split() एक स्ट्रिंग को निर्दिष्ट पैटर्न के अनुसार एक सरणी में विभाजित करता है। यह explode() का एक एनालॉग है, लेकिन रेगुलर एक्सप्रेशन के सपोर्ट के साथ।
<?php$text = "सेब, नाशपाती; केला: संतरा";$pattern = "/[,;: ]+/";
$fruits = preg_split($pattern, $text);print_r($fruits);// आउटपुट: Array ( [0] => सेब [1] => नाशपाती [2] => केला [3] => संतरा )?>रेगुलर एक्सप्रेशन का सिंटैक्स
PHP में रेगुलर एक्सप्रेशन डिलीमीटर (आमतौर पर स्लैश /) में संलग्न होते हैं और समापन डिलीमीटर के बाद मॉडिफायर शामिल कर सकते हैं। आइए सिंटैक्स के मुख्य तत्वों पर नज़र डालें।
मेटाकैरेक्टर और क्वांटिफायर
- कैरेक्टर क्लास:
.(कोई भी कैरेक्टर),\\d(अंक),\\w(अक्षर, अंक, अंडरस्कोर),\\s(स्पेस कैरेक्टर) - क्वांटिफायर:
*(0 या अधिक),+(1 या अधिक),?(0 या 1),{n,m}(n से m तक) - एंकर:
^(स्ट्रिंग की शुरुआत),$(स्ट्रिंग का अंत),\\b(शब्द सीमा) - ग्रुपिंग:
()(ग्रुप कैप्चर करना),(?:)(नॉन-कैप्चरिंग ग्रुप) - वैकल्पिक:
|(लॉजिकल OR)
पैटर्न मॉडिफायर
i— केस-इनसेंसिटिव सर्चm— मल्टीलाइन मोड (^ और $ प्रत्येक पंक्ति के लिए काम करते हैं)s— मेटाकैरेक्टर . में न्यूलाइन शामिल हैu— Unicode सपोर्ट (सिरिलिक वर्णों के साथ काम करने के लिए अनिवार्य)