PHP में नियमित अभिव्यक्तियाँ: ये क्या हैं और इनकी आवश्यकता क्यों है?
\n\nनियमित अभिव्यक्तियाँ (regex) पैटर्न के आधार पर स्ट्रिंग्स को खोजने, बदलने और जाँचने के लिए एक शक्तिशाली उपकरण हैं। PHP में, ये फ़ंक्शनों के एक सेट के माध्यम से कार्यान्वित की जाती हैं जो डेवलपर को टेक्स्ट डेटा के साथ लचीले ढंग से काम करने की अनुमति देती हैं। शुरुआती लोगों के लिए यह विषय जटिल लग सकता है, लेकिन व्यवहार में यह फॉर्म प्रोसेसिंग, ईमेल सत्यापन, URL पार्सिंग और कई अन्य कार्यों को काफी सरल बनाता है।
\n\nइस लेख में, हम PHP में नियमित अभिव्यक्तियों के मूल सिंटैक्स को समझेंगे, मुख्य फ़ंक्शनों पर विचार करेंगे और उनमें से प्रत्येक के लिए स्पष्ट उदाहरण प्रस्तुत करेंगे।
\n\n1. नियमित अभिव्यक्तियों के सिंटैक्स की मूल बातें
\n\nPHP में एक नियमित अभिव्यक्ति एक स्ट्रिंग है जो सीमांककों (अक्सर स्लैश /) में संलग्न होती है। इस स्ट्रिंग के अंदर विशेष वर्ण (मेटाकैरेक्टर) और सामान्य वर्ण होते हैं।
मुख्य मेटाकैरेक्टर
\n\n- \n
.— कोई भी वर्ण, न्यू लाइन को छोड़कर। \n ^— स्ट्रिंग की शुरुआत। \n $— स्ट्रिंग का अंत। \n *— पिछले वर्ण की शून्य या अधिक पुनरावृत्तियाँ। \n +— एक या अधिक पुनरावृत्तियाँ। \n ?— शून्य या एक पुनरावृत्ति। \n \\d— कोई भी अंक ([0-9] के समान)। \n \\w— कोई भी अक्षर, अंक या अंडरस्कोर। \n \\s— कोई भी स्पेस वर्ण। \n []— वर्ण वर्ग (उदाहरण के लिए, [a-z] — सभी छोटे लैटिन अक्षर)। \n ()— समूहीकरण। \n
एक सरल पैटर्न का उदाहरण
\n\nमान लीजिए हम जाँचना चाहते हैं कि स्ट्रिंग में "php" शब्द है या नहीं। सबसे सरल पैटर्न इस प्रकार दिखेगा:
\n\n/php/\n\nयह पैटर्न स्ट्रिंग में कहीं भी सबस्ट्रिंग "php" ढूंढेगा (उदाहरण के लिए, "PHP" में केस-सेंसिटिव होने के कारण नहीं मिलेगा, क्योंकि केस मायने रखता है)। खोज को केस-इनसेंसिटिव बनाने के लिए, मॉडिफायर i का उपयोग किया जाता है:
/php/i\n\nअब पैटर्न "PHP", "Php" और "php" सभी से मेल खाएगा।
\n\n2. PHP में नियमित अभिव्यक्तियों के साथ काम करने के लिए मुख्य फ़ंक्शन
\n\nPHP कई प्रमुख फ़ंक्शन प्रदान करता है। आइए तीन सबसे लोकप्रिय पर विचार करें: preg_match, preg_replace और preg_split।
2.1. preg_match — मिलान की जाँच
\n\nफ़ंक्शन preg_match जाँचता है कि स्ट्रिंग पैटर्न से मेल खाती है या नहीं। यदि मिलान मिलता है तो यह 1 लौटाता है, अन्यथा 0। आप तीसरा आर्गुमेंट भी पास कर सकते हैं — एक ऐरे, जिसमें सभी मिले मिलान रिकॉर्ड किए जाएंगे।
उदाहरण: ईमेल की जाँच
\n\n<?php\n$email = "user@example.com";\n$pattern = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/";\n\nif (preg_match($pattern, $email)) {\n echo "ईमेल सही है!";\n} else {\n echo "ईमेल गलत है!";\n}\n?>\n\nपैटर्न का स्पष्टीकरण:
\n- \n
^— स्ट्रिंग की शुरुआत। \n [a-zA-Z0-9._-]+— एक या अधिक वर्ण: लैटिन अक्षर, अंक, डॉट, अंडरस्कोर या हाइफ़न। \n @— अनिवार्य "एट" चिह्न। \n [a-zA-Z0-9.-]+— डोमेन नाम। \n \\.— एस्केप किया गया डॉट। \n [a-zA-Z]{2,}— डोमेन ज़ोन (कम से कम 2 अक्षर)। \n $— स्ट्रिंग का अंत। \n
2.2. preg_replace — पैटर्न के अनुसार बदलना
\n\nफ़ंक्शन preg_replace पैटर्न से मेल खाने वाले भागों को ढूंढता है और उन्हें निर्दिष्ट स्ट्रिंग से बदल देता है। यह डेटा साफ करने या टेक्स्ट को फॉर्मेट करने के लिए विशेष रूप से उपयोगी है।
उदाहरण: स्ट्रिंग से सभी अंक हटाना
\n\n<?php\n$text = "मेरा नंबर: 123-456-7890";\n$pattern = "/\\d+/";\n$replacement = "[अंक]";\n\n$result = preg_replace($pattern, $replacement, $text);\necho $result; // आउटपुट: "मेरा नंबर: [अंक]-[अंक]-[अंक]"\n?>