PHP preg_match(): नियमित अभिव्यक्तियाँ (Regex)

⚡ स्मार्ट सारांश

PHP में रेगुलर एक्सप्रेशन पैटर्न-मैचिंग टूल हैं जो एक ही एक्सप्रेशन में टेक्स्ट को वैलिडेट, स्प्लिट और रिप्लेस करते हैं। यह गाइड preg_match, preg_split और preg_replace जैसे मुख्य फंक्शन्स को कवर करती है, सामान्य मेटाकैरेक्टर्स को समझाती है और एक कार्यशील ईमेल वैलिडेशन पैटर्न को स्टेप-बाय-स्टेप बनाती है।

  • 🧩 रेगुलर एक्सप्रेशन क्या है: एक रेगुलर एक्सप्रेशन एक ऐसा पैटर्न है जो टेक्स्ट का वर्णन करता है, जिससे एक फंक्शन स्ट्रिंग को मान्य करने, खोजने या रूपांतरित करने में सक्षम होता है।
  • गर्भावस्था_मिलान: preg_match यह जांचता है कि क्या कोई पैटर्न किसी स्ट्रिंग में मौजूद है और पहले मिलान पर true लौटाता है, जो सत्यापन के लिए आदर्श है।
  • प्रेग_स्प्लिट: preg_split किसी स्ट्रिंग को उस पैटर्न के आधार पर एक ऐरे में तोड़ता है, जैसे कि किसी वाक्य को स्पेस के आधार पर विभाजित करना।
  • 🔁 प्रेग_रिप्लेस: preg_replace एक पैटर्न के सभी मिलानों को ढूंढता है और उन्हें नए टेक्स्ट से बदल देता है, जो टेम्प्लेटिंग और हाइलाइटिंग के लिए उपयोगी है।
  • 🔤 पात्र: ., ^, $, *, और + जैसे प्रतीक जटिल पैटर्न बनाते हैं, उदाहरण के लिए किसी मिलान को शुरुआत या अंत से जोड़ना।
  • 📧 ईमेल पैटर्न: कैरेक्टर क्लास और क्वांटिफायर मिलकर एक सिंगल पैटर्न बनाते हैं जो यह जांचता है कि ईमेल एड्रेस सही फॉर्मेट में है या नहीं।
  • 🤖 एआई सहायता: एआई उपकरण एक साधारण विवरण से रेगुलर एक्सप्रेशन लिख सकते हैं और किसी जटिल मौजूदा पैटर्न की व्याख्या या उसमें मौजूद खामियों को दूर कर सकते हैं।

पीएचपी नियमित अभिव्यक्तियाँ

PHP में रेगुलर एक्सप्रेशन क्या है?

PHP नियमित अभिव्यक्तियाँरेगुलर एक्सप्रेशन (regex) एक शक्तिशाली पैटर्न मिलान उपकरण है जिसे एक ही एक्सप्रेशन में किया जा सकता है। रेगुलर एक्सप्रेशन जटिल एक्सप्रेशन बनाने के लिए +, - और ^ जैसे विशेष वर्णों का उपयोग करते हैं। ये ईमेल पते, आईपी पते आदि को मान्य करने जैसे कार्यों में आपकी मदद कर सकते हैं।

नियमित अभिव्यक्तियों का उपयोग क्यों करें

  • PHP रेगुलर एक्सप्रेशन एक ही फंक्शन को कॉल करके स्ट्रिंग डेटा में पैटर्न की पहचान को सरल बनाते हैं। इससे कोडिंग का समय बचता है।
  • ईमेल पते, डोमेन नाम, टेलीफोन नंबर और आईपी पते जैसी उपयोगकर्ता इनपुट को मान्य करते समय
  • खोज परिणामों में कीवर्ड हाइलाइट करना
  • कस्टम HTML टेम्पलेट बनाते समय, PHP में Regex का उपयोग टेम्पलेट टैग की पहचान करने और उन्हें वास्तविक डेटा से बदलने के लिए किया जा सकता है।

PHP में अंतर्निहित नियमित अभिव्यक्ति फ़ंक्शन

PHP में रेगुलर एक्सप्रेशन के साथ काम करने के लिए अंतर्निहित फ़ंक्शन मौजूद हैं, जिन्हें हम इस ट्यूटोरियल में सीखेंगे। आइए PHP में आमतौर पर उपयोग होने वाले रेगुलर एक्सप्रेशन फ़ंक्शन पर एक नज़र डालते हैं।

  • PHP में preg_match() फ़ंक्शन का उपयोग स्ट्रिंग पर पैटर्न मिलान करने के लिए किया जाता है। यदि मिलान पाया जाता है तो यह true लौटाता है और यदि मिलान नहीं पाया जाता है तो false लौटाता है।
  • PHP में preg_split() फ़ंक्शन का उपयोग किसी स्ट्रिंग पर पैटर्न मैच करने और फिर परिणामों को एक संख्यात्मक सरणी में विभाजित करने के लिए किया जाता है।
  • PHP में preg_replace() - इस फ़ंक्शन का उपयोग स्ट्रिंग पर पैटर्न मिलान करने और फिर मिलान को निर्दिष्ट टेक्स्ट से बदलने के लिए किया जाता है।

नीचे preg_match(), preg_split(), या preg_replace() जैसे रेगुलर एक्सप्रेशन फ़ंक्शन के लिए सिंटैक्स दिया गया है।

<?php
function_name('/pattern/',subject);
?>

यहाँ,

  • “function_name(…)” या तो preg_match(), preg_split(), या preg_replace() है।
  • “/…/” फॉरवर्ड स्लैश हमारे रेगुलर एक्सप्रेशन की शुरुआत और अंत को दर्शाते हैं।
  • “'/pattern/'” वह पैटर्न है जिसका हमें मिलान करना है।
  • “विषय” वह टेक्स्ट स्ट्रिंग है जिसका मिलान किया जाना है

आइए अब उन व्यावहारिक उदाहरणों को देखें जो उपरोक्त PHP रेगुलर एक्सप्रेशन फ़ंक्शंस को लागू करते हैं।

PHP में Preg_match()

पहले उदाहरण में preg_match() फ़ंक्शन का उपयोग करके दिए गए टेक्स्ट में गुरु शब्द के लिए एक सरल पैटर्न मिलान किया गया है। URL.

नीचे दिया गया कोड उपरोक्त उदाहरण के लिए preg_match() फ़ंक्शन के कार्यान्वयन को दर्शाता है।

<?php
$my_url = "www.guru99.com";
if (preg_match("/guru/", $my_url))
{
echo "the url $my_url contains guru";
}
else
{
echo "the url $my_url does not contain guru";
}
?>

के लिए ब्राउज़ करें URL http://localhost/phptuts/preg_match_simple.php

अंतर्निहित नियमित अभिव्यक्ति फ़ंक्शन

आइए, कोड के उस हिस्से की जांच करें जो हमारे आउटपुट के लिए जिम्मेदार है। preg_match('/guru/', $my_url)। यहाँ,

  • “preg_match(…)” PHP रेगेक्स फ़ंक्शन है
  • “'/guru/'” मिलान किया जाने वाला नियमित अभिव्यक्ति पैटर्न है
  • “$my_url” वह वेरिएबल है जिसमें मिलान किया जाने वाला टेक्स्ट होता है।

PHP प्रीग_स्प्लिट()

अब आइए एक और उदाहरण देखें जिसमें preg_split() फ़ंक्शन का उपयोग किया गया है।

हम एक स्ट्रिंग वाक्यांश लेंगे और उसे एक सारणी में विस्फोटित करेंगे; मिलान किया जाने वाला पैटर्न एक एकल स्पेस होगा।

इस उदाहरण में प्रयुक्त किया जाने वाला टेक्स्ट स्ट्रिंग “आई लव रेगुलर एक्सप्रेशन्स” है।

नीचे दिया गया कोड उपरोक्त उदाहरण के कार्यान्वयन को दर्शाता है।

<?php

$my_text = "I Love Regular Expressions";

$my_array = preg_split("/ /", $my_text);

print_r($my_array );

?>

के लिए ब्राउज़ करें URL http://localhost/phptuts/preg_split.php

PHP प्रीग_स्प्लिट()

PHP प्रीग_रिप्लेस()

अब हम preg_replace() फ़ंक्शन को देखते हैं। PHP फ़ंक्शन जो पैटर्न मिलान करता है और फिर पैटर्न को किसी अन्य चीज़ से प्रतिस्थापित करता है।

नीचे दिया गया कोड गुरु शब्द को खोजता है स्ट्रिंग.

यह गुरु शब्द को उसी गुरु शब्द से बदल देता है जिसके चारों ओर सीएसएस कोड होता है जो पृष्ठभूमि के रंग को हाइलाइट करता है।

<?php

$text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com";

$text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text);

echo $text;

?>

मान लीजिए कि आपने preg_replace.php फ़ाइल सहेज ली है, तो उस फ़ाइल पर जाएँ URL http://localhost/phptuts/preg_replace.php

PHP प्रीग_रिप्लेस()

नियमित अभिव्यक्ति. अक्षर

ऊपर दिए गए उदाहरणों में बहुत ही बुनियादी पैटर्न का उपयोग किया गया था। वर्ण हमें अधिक जटिल पैटर्न मिलान करने की अनुमति देते हैं, जैसे कि ईमेल पते की वैधता का परीक्षण करना। आइए अब आमतौर पर उपयोग किए जाने वाले मेटाकैरेक्टर पर एक नज़र डालते हैं।

चरित्र विवरण उदाहरण
. नई पंक्ति को छोड़कर किसी भी एकल वर्ण से मेल खाता है /./ किसी भी ऐसी चीज़ से मेल खाता है जिसमें एक ही अक्षर हो
^ स्ट्रिंग की शुरुआत से मेल खाता है या वर्णों को बाहर रखता है /^PH/ PH से शुरू होने वाली किसी भी स्ट्रिंग से मेल खाता है
$ स्ट्रिंग के अंत में एक पैटर्न से मेल खाता है /com$/ guru99.com, yahoo.com आदि से मेल खाता है।
* पिछले वर्णों में से शून्य या अधिक से मेल खाता है /com*/ कंप्यूटर, संचार आदि से मेल खाता है।
+ इसके लिए आवश्यक है कि पूर्ववर्ती अक्षर कम से कम एक बार दिखाई दें। /yah+oo/ याहू से मेल खाता है
\ मेटाकैरेक्टर्स से बचने के लिए उपयोग किया जाता है /yahoo+\.com/ बिंदु को शाब्दिक मान के रूप में मानता है
[...] वर्ण वर्ग /[abc]/ a, b या c से मेल खाता है
AZ छोटे अक्षरों से मेल खाता है /az/ कूल, हैप्पी आदि से मेल खाता है।
प्रथम से अंतिम अक्षर तक बड़े अक्षरों से मेल खाता है /AZ/ का तात्पर्य WHAT, HOW, WHY आदि से है।
0-9 0 से 9 के बीच किसी भी संख्या से मेल खाता है /0-4/ मैच 0,1,2,3,4

उपरोक्त सूची में केवल नियमित अभिव्यक्तियों में सबसे अधिक प्रयुक्त मेटाकैरेक्टर दिए गए हैं।

आइए अब एक अपेक्षाकृत जटिल उदाहरण देखें जो ईमेल पते की वैधता की जांच करता है।

<?php
$my_email = "name@company.com";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) {
echo "$my_email is a valid email address";
}
else
{
echo "$my_email is NOT a valid email address";
}
?>

ईमेल सत्यापन पैटर्न की व्याख्या

यहाँ,

  • “/…/” से रेगुलर एक्सप्रेशन शुरू और खत्म होता है
  • “^[a-zA-Z0-9._-]” किसी भी छोटे या बड़े अक्षर, 0 और 9 के बीच की संख्या, और डॉट्स, अंडरस्कोर या डैश से मेल खाता है।
  • “+@[a-zA-Z0-9-]” @ चिह्न के बाद आने वाले छोटे या बड़े अक्षरों, 0 और 9 के बीच की संख्याओं या डैश से मेल खाता है।
  • “+\.[a-zA-Z.]{2,5}$/” बैकस्लैश का उपयोग करके डॉट को एस्केप करता है, फिर स्ट्रिंग के अंत में 2 और 5 के बीच वर्ण लंबाई वाले किसी भी छोटे या बड़े अक्षर से मेल खाता है।

के लिए ब्राउज़ करें URL http://localhost/phptuts/preg_match.php

PHP ईमेल सत्यापन पैटर्न

जैसा कि आप ऊपर दिए गए विश्लेषण से देख सकते हैं, पैटर्न का मिलान करने के मामले में मेटाकैरेक्टर बहुत शक्तिशाली होते हैं।

अक्सर पूछे जाने वाले प्रश्न

preg_match पहले मैच पर रुक जाता है और $matches को उसी एक परिणाम से भर देता है। preg_match_all स्ट्रिंग में सभी मैच ढूंढता है और उन सभी को एक नेस्टेड ऐरे में लौटाता है, जो ex के लिए उपयुक्त है।tracबार-बार दोहराई जाने वाली वस्तुएं।

मॉडिफ़ायर क्लोजिंग डिलिमिटर के बाद आते हैं और मैचिंग व्यवहार को बदलते हैं। i मॉडिफ़ायर पैटर्न को केस-इनसेंसिटिव बनाता है, m ^ और $ के लिए प्रत्येक पंक्ति को अलग-अलग मानता है, और s डॉट को नई लाइनों से मैच करने देता है, जैसे कि /guru/i में।

पैटर्न के कुछ हिस्सों को कोष्ठकों में रखकर कैप्चर समूह बनाएँ। preg_match के बाद, पूरा मिलान $matches[0] में होता है और उसके बाद प्रत्येक समूह $matches[1], $matches[2], इत्यादि में आता है।

जी हां। आप जिस टेक्स्ट का मिलान करना चाहते हैं, जैसे कि फ़ोन नंबर या दिनांक प्रारूप, उसका विवरण दें और AI पैटर्न के साथ-साथ एक preg_match उदाहरण भी तैयार कर सकता है। इस पर भरोसा करने से पहले वास्तविक और विशिष्ट परिस्थितियों वाले इनपुट पर इसका परीक्षण कर लें।

जी हां। पैटर्न पेस्ट करें, और एआई इसे टोकन-दर-टोकन तोड़कर, प्रत्येक भाग के मिलान की व्याख्या कर सकता है, और यह बता सकता है कि यह कुछ इनपुट पर विफल क्यों होता है, फिर एक सही संस्करण सुझा सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: