रेगुलर एक्सप्रेशन php कैरेक्टर रिप्लेसमेंट। PHP रेगुलर एक्सप्रेशन. अपवर्जित चरित्र वर्ग
PHP, एक आधुनिक प्रोग्रामिंग भाषा के रूप में, डेवलपर को नियमित अभिव्यक्तियों का उपयोग करने के लिए कार्यों का एक सेट प्रदान करता है। आप जटिल मानदंडों का उपयोग करके अन्य स्ट्रिंग्स में स्ट्रिंग्स की घटनाओं की खोज कर सकते हैं।
- PREG_PATTERN_ORDER;
- PREG_SET_ORDER.
विकल्प 1 समूह खोज परिणामों को नियमित अभिव्यक्ति संख्या (डिफ़ॉल्ट) के आधार पर क्रमबद्ध करें। दूसरे मामले में, परिणामों को पंक्ति में उनके स्थान के आधार पर समूहीकृत किया जाता है।
प्रतीक - टेम्पलेट तत्व
यह याद रखना महत्वपूर्ण है कि टेम्प्लेट प्रतीकों पर काम करता है। प्रोग्रामिंग लंबे समय से भूल गया है कि "कैरेक्टर" डेटा प्रकार क्या है। आधुनिक भाषाएँ "स्ट्रिंग" की अवधारणा से नीचे नहीं जाती हैं, लेकिन पैटर्न के संबंध में, आपको यह समझने की आवश्यकता है: यहां प्रतीकों में हेरफेर किया जाता है।
एक टेम्प्लेट बनाना, सबसे पहले, वर्णों के आवश्यक अनुक्रम को निर्दिष्ट करना है। यदि आप इसे स्पष्ट रूप से समझ लें तो टेम्पलेट में कोई त्रुटि नहीं होगी। किसी भी स्थिति में, यह बहुत कम होगा.
- a टेम्पलेट का एक विशिष्ट तत्व है - एक प्रतीक।
- a-z एक टेम्प्लेट तत्व है, एक वर्ण भी है, लेकिन केवल a से z तक के मान के साथ - सभी लैटिन लोअरकेस में।
- 0-9 एक संख्या है, कोई भी संख्या, लेकिन 1-3 केवल 1, 2 या 3 है।
पैटर्न में केस महत्वपूर्ण है. पैटर्न के पहले और आखिरी अक्षर महत्वपूर्ण हैं। आप निर्दिष्ट कर सकते हैं कि टेम्प्लेट कहाँ से प्रारंभ और समाप्त होता है।
फ़ंक्शन टेम्पलेट
PHP प्रीग मैच सभी मानक रेगुलर एक्सप्रेशन सिंटैक्स का उपयोग करता है। उनमें दर्शाए गए प्रतीकों में से एक को इंगित करें:
- केवल अक्षर ए, बी, सी।
- [^एबीसी] अक्षर ए, बी, सी को छोड़कर सब कुछ।
- \w और \W - पाठ या गैर-पाठ वर्ण।
- \s और \S - व्हाइटस्पेस या गैर-व्हाट्सएप वर्ण।
- \d और \D - अंकीय या गैर-अंकीय।
दोहराए जाने वाले वर्ण घुंघराले ब्रेसिज़ द्वारा इंगित किए जाते हैं - (एन,एम) और पिछले वर्ण को संदर्भित करते हैं।
- n "से कम नहीं" की पुनरावृत्ति को दर्शाता है;
- मी - "और नहीं" की पुनरावृत्ति।
सिंटैक्स टेम्प्लेट बनाने के लिए कई विकल्प प्रदान करता है, लेकिन बुनियादी बातों से शुरुआत करना सबसे अच्छा है, यानी, अपने हाथ से लिखे गए सरल टेम्प्लेट से, जिसमें जटिल तत्व और संयोजन अनुपस्थित हैं।
सीधे शब्दों में कहें तो, आवश्यक वास्तविक पात्रों को सूचीबद्ध करके, उनकी आवश्यक मात्रा को इंगित करके, और यह ध्यान में रखते हुए कि "^" अक्षर शुरुआत से मेल खाता है, और "$" पंक्ति के अंत से मेल खाता है, आप सरल टेम्पलेट बना सकते हैं। योग्य विशेषज्ञों से वास्तविक, अच्छी तरह से डिबग किए गए नियमित अभिव्यक्तियों का विश्लेषण करके, आप प्रीग मैच ऑल के जटिल एप्लिकेशन बनाने के लिए ठोस ज्ञान प्राप्त कर सकते हैं। PHP का शस्त्रागार केवल इन दो कार्यों तक ही सीमित नहीं है, बल्कि ये सबसे अधिक उपयोग किए जाते हैं।
सरल अभ्यास
पूर्णांक पैटर्न:
- "/*/"
यह भी एक पूर्णांक पैटर्न है, लेकिन सामने एक चिह्न हो सकता है ("+", "-"), और आगे/पीछे अतिरिक्त स्थान हो सकते हैं:
- /^[\s|\+|\-](0,1)*/
वैसे ही:
- /^[\s|\+|\-](0,1)*(\.)*/ - एक बिंदु के साथ एक संख्या।
- /+@+\.(2,3)/ - ई-मेल पहचान के लिए विकल्प।
प्रीग मैच के लिए अपने स्वयं के टेम्प्लेट का उपयोग करना, इंटरनेट पर उनके उदाहरण, वेबसाइट पृष्ठों और अन्य स्रोतों के कोड का विश्लेषण करने से आप टेम्प्लेट की अपनी लाइब्रेरी बनाने की अनुमति देते हैं।
जानकारी खोजने के लिए कई विकल्प हैं. विशेष रूप से, ऊपर दिए गए अंतिम दो निर्माणों को अलग तरीके से तैयार किया जा सकता है। कई मामलों में, उस टेम्पलेट को प्राथमिकता दी जाएगी जो वांछित मिलान तेजी से और अधिक सटीक रूप से प्रदान करता है। PHP में प्रीग मैच ऑल का उपयोग करने के साथ-साथ अन्य भाषाओं में समान कार्यों के लिए अभ्यास, ध्यान और टेम्पलेट्स की शुद्धता की प्रारंभिक जांच की आवश्यकता होती है।
यह आलेख php regexp उदाहरणों का चयन प्रदान करता है। रेगुलर एक्सप्रेशन उदाहरणों का एक बहुत अच्छा और उपयोगी संग्रह। PHP के लिए सभी रेगुलर एक्सप्रेशन उदाहरण स्वीकार्य हैं। अपने स्वास्थ्य के लिए इसका आनंद लें!
डोमेन नाम सत्यापन उदाहरण
यह php स्निपेट जाँचता है कि स्ट्रिंग एक वैध डोमेन नाम है या नहीं।
?:.*)+):?(d+)?/?/i", $url)) ( इको "आपका यूआरएल ठीक है।"; ) अन्य ( इको "गलत यूआरएल"; )
पाठ में किसी शब्द को हाइलाइट करने का उदाहरण
पाठ में वांछित शब्द को खोजने और हाइलाइट करने के लिए एक बहुत उपयोगी नियमित अभिव्यक्ति। खोज परिणाम आउटपुट बनाते समय कोड विशेष रूप से उपयोगी होता है।
$text = "KumunitasWeb से नमूना वाक्य, रेगेक्स वेब प्रोग्रामिंग में लोकप्रिय हो गया है। अब हम रेगेक्स सीखते हैं। विकिपीडिया के अनुसार, रेगुलर एक्सप्रेशन (संक्षिप्त रूप में रेगेक्स या रेगएक्सपी, बहुवचन रूपों रेगेक्स, रेगेक्स, या रेगेक्सन के साथ) औपचारिक रूप में लिखे जाते हैं वह भाषा जिसकी व्याख्या रेगुलर एक्सप्रेशन प्रोसेसर द्वारा की जा सकती है"; $पाठ = preg_replace("/b(regex)b/i", " 1", $पाठ); प्रतिध्वनि $पाठ;
खोज परिणामों को हाइलाइट करने के कार्यान्वयन का एक उदाहरणWordPress के
search.php फ़ाइल खोलें और the_title() फ़ंक्शन ढूंढें। इसे निम्नलिखित पंक्ति से बदलें:
प्रतिध्वनि $शीर्षक;
अब, प्रतिस्थापित लाइन से पहले, यह कोड डालें:
\0", $शीर्षक); ?>
अपनी search.php फ़ाइल सहेजें और style.css खोलें। इसमें निम्न पंक्ति जोड़ें:
सशक्त.खोज-अंश (पृष्ठभूमि: पीला;)
से छवियाँ प्राप्त करने का एक उदाहरणHTML regexp विधि
PHP कोड का यह टुकड़ा रेगुलर एक्सप्रेशन का उपयोग करके सभी छवियों और उनके यूआरएल को खोजता है।
$छवियाँ = सरणी(); preg_match_all("/(img|src)=("|")[^"">]+/i", $data, $media); अनसेट($डेटा); $data=preg_replace('/(img|src)('|'|=='|=')(.*)/i','$3',$media); foreach($data as $url) ( $info = pathinfo($url); if (isset($info["extension"])) ( if (($info["extension"] == "jpg") || ($जानकारी["एक्सटेंशन"] == "जेपीईजी") || ($जानकारी["एक्सटेंशन"] == "जीआईएफ") || ($जानकारी["एक्सटेंशन"] == "पीएनजी")) ऐरे_पुश($ छवियाँ, $url); ) )
डुप्लिकेट शब्द हटाना (केस असंवेदनशील)
क्या ऐसे शब्द हैं जो अक्सर दोहराए जाते हैं? तब यह रेगुलर एक्सप्रेशन उदाहरण आपके काम आएगा।
$text = preg_replace("/s(w+s)1/i", "$1", $text);
डुप्लिकेट अंक हटाना
वही बात, केवल दोहराए गए बिंदुओं के साथ।
$text = preg_replace("/.+/i", "।", $text);
XML/HTML टैग मिलान
यह सरल फ़ंक्शन दो तर्क लेता है: एक टैग (जिसे आप मिलान करना चाहते हैं), एक्सएमएल, या एचटीएमएल कोड।
फ़ंक्शन get_tag($tag, $xml) ($tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?)".$tag.">.")", $xml, $matches, PREG_PATTERN_ORDER); $मैच वापस करें; )
विशिष्ट विशेषता मानों वाले XHTML/XML टैग खोजें
यह उदाहरण पिछले फ़ंक्शन के समान है, केवल आप खोज को महत्वपूर्ण रूप से विस्तारित कर सकते हैं, उदाहरण के लिए ढूंढें
फ़ंक्शन get_tag($attr, $value, $xml, $tag=null) ( if(is_null($tag)) $tag = "\w+"; अन्यथा $tag = preg_quote($tag); $attr = preg_quote($ attr); $मूल्य = preg_quote($मूल्य); $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*"। "(["\"])$value\\2[^>]*>(.*?)<\/\\1>/" preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); $matches वापस करें; )
हेक्साडेसिमल रंग मान ढूँढना
रेगुलर एक्सप्रेशन का एक बेहतरीन उदाहरण जो दिए गए स्ट्रिंग में हेक्साडेसिमल रंग मानों से मेल खाता है। यह किसलिए है? शायद आप सीएसएस कोड संपीड़न सेवा, या कुछ इसी तरह लिखना चाहते हैं।
$स्ट्रिंग = "#555555"; यदि (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "उदाहरण 6 सफल।"; )
उदाहरण खोजेंकिसी दिए गए पृष्ठ पर शीर्षक
रेगएक्सपी के साथ PHP कोड का यह दिलचस्प उदाहरण टैग के बीच टेक्स्ट ढूंढता है और लौटाता है
Feof($fp))( $पेज .= fgets($fp, 4096); ) $titre = eregi("
अपाचे लॉग पार्सिंग
अधिकांश साइटें सुप्रसिद्ध अपाचे सर्वर पर चलती हैं। यदि आपकी साइट भी इस पर चलती है, तो आप php regexp का उपयोग करके सर्वर लॉग को पार्स कर सकते हैं।
//लॉग्स: अपाचे वेब सर्वर //केवल HTML फ़ाइलों पर सफल हिट। पृष्ठ दृश्यों की संख्या गिनने के लिए उपयोगी. "^((?#क्लाइंट आईपी या डोमेन नाम)एस+)एस+((?#बुनियादी प्रमाणीकरण)एस+एस+एस+)एस+[((?#दिनांक और समय)[^]]+)]एस+"(?: प्राप्त करें|पोस्ट|हेड) ((?#फ़ाइल)/[^ ?]+?.html?)?((?#parameters)[^ ?]+)? HTTP/+"s+(?#status कोड)200s+((?#बाइट्स स्थानांतरित)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user एजेंट )[^"]*)"$" //लॉग्स: अपाचे वेब सर्वर //404 त्रुटियां केवल "^((?#क्लाइंट आईपी या डोमेन नाम)एस+)एस+((?#बुनियादी प्रमाणीकरण)एस+एस+एस+) s+[((?#दिनांक और समय)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)?((?#parameters)[ ^ ?"]+)? HTTP/+"s+(?#status कोड)404s+((?#बाइट्स स्थानांतरित)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#उपयोगकर्ता एजेंट )[^"]*)"$"
पासवर्ड जटिलता की जाँच का उदाहरण
रेगुलर एक्सप्रेशन का एक उत्कृष्ट उदाहरण जो पासवर्ड की जटिलता स्तर की जाँच करता है। पासवर्ड 6 अक्षर लंबा होना चाहिए और इसमें कम से कम एक अपरकेस अक्षर, एक लोअरकेस अक्षर और एक संख्या होनी चाहिए।
"ए(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"
टेक्स्ट इमोटिकॉन्स को ग्राफ़िक इमोटिकॉन्स से बदलना
यह उदाहरण कोड टेक्स्ट इमोटिकॉन को आपके ग्राफिक इमोटिकॉन में बदल देगा। दिलचस्प और उपयोगी PHP स्निपेट।
$texte=''स्माइली वाला एक टेक्स्ट:-)''; इको str_replace(":-)"," ",$texte);
छवियाँ प्राप्त करने के लिए नियमित अभिव्यक्ति का उदाहरणHTML कोड
गौरतलब है कि इस php कोड का उपयोग वर्डप्रेस में इमेज को सर्च करने और प्रोसेस करने के लिए किया जाता है।
पोस्ट सामग्री; $szSearchPattern = "~ ]* />~"; // सभी छवियों को प्राप्त करने और परिणामों को $aPics preg_match_all($szSearchPattern, $szPostContent, $aPics) में सहेजने के लिए preg_match_all चलाएं; // यह देखने के लिए जांचें कि क्या हमारे पास कम से कम 1 छवि है $iNumberOfPics = count($aPics); यदि ($iNumberOfPics > 0) ( // यहां आप अपनी छवियों को संसाधित कर सकते हैं // इस उदाहरण में उन्हें बस मॉनिटर पर प्रदर्शित किया जाएगा ($i=0; $i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
मुझे आशा है कि आपको php regexp उदाहरणों का यह संग्रह उपयोगी लगा होगा। यदि नियमित अभिव्यक्ति (पीएचपी) के दिलचस्प जोड़ या उदाहरण हैं, तो टिप्पणियों में लिखें।
समारोह विवरण:
Preg_replace फ़ंक्शन एक स्ट्रिंग (विषय) में डेटा के साथ एक नियमित अभिव्यक्ति (पैटर्न) के मिलान की खोज करता है और उन्हें प्रतिस्थापन में पाए गए डेटा से बदल देता है।
तर्क |
विवरण |
|
नमूना |
आवश्यक तर्क.नियमित अभिव्यक्ति (खोज पैटर्न) |
स्ट्रिंग, सरणी |
प्रतिस्थापन |
आवश्यक तर्क.एक स्ट्रिंग या सरणी जिसमें डेटा को प्रतिस्थापित करने के लिए उपयोग किया जाने वाला डेटा होता है विषय आप लिंक के लिए फॉर्म \$(1) के निर्माण का भी उपयोग कर सकते हैं, जो \$1 के बराबर है; इस निर्माण का उपयोग तब किया जाता है जब लिंक के तुरंत बाद एक संख्या (\$(1)1) आती है। |
स्ट्रिंग, सरणी |
विषय | आवश्यक तर्क.एक स्ट्रिंग या सरणी जिसमें वह डेटा है जिसे प्रतिस्थापित किया जाएगा। | स्ट्रिंग, सरणी |
आप LIMIT | वैकल्पिक तर्क.प्रतिस्थापनों की अधिकतम संख्या. डिफ़ॉल्ट -1 है (असीमित) |
int यहाँ |
गिनती करना | वैकल्पिक तर्क.एक चर जिसमें किए गए प्रतिस्थापनों की संख्या शामिल है। |
int यहाँ |
Preg_replace() फ़ंक्शन का उपयोग /e संशोधक के साथ किया जा सकता है। जब यह संशोधक मौजूद होता है, तो प्रतिस्थापन पैरामीटर को PHP कोड के रूप में व्याख्या किया जाता है और फिर प्रतिस्थापन के लिए उपयोग किया जाता है।
नियमित अभिव्यक्ति
अलग से, हमें नियमित अभिव्यक्तियों पर ध्यान देना चाहिए, जिनकी समझ के बिना फ़ंक्शन के कार्य को समझना काफी मुश्किल (यदि असंभव नहीं) है preg_replace()।
विकिपीडिया.org पर रेगुलर एक्सप्रेशन का काफी अच्छा विवरण दिया गया है, रेगुलर एक्सप्रेशन के उपयोग के मुख्य बिंदुओं का भी वर्णन किया गया है
उदाहरण:
उदाहरण 1:
इस उदाहरण में, हम कोष्ठक में रखे गए सभी नंबरों को तारांकन से बदल देते हैं।उदाहरण 2:
इस उदाहरण में, हम संपूर्ण पैटर्न के अनुरूप स्ट्रिंग को संदर्भ \$1 पर पहले उप-पैटर्न के अनुरूप डेटा से प्रतिस्थापित करते हैं। दूसरे शब्दों में, "/(\w+) (\d+) (\w+)/" के अनुरूप "हैव 3 सेब" को (\w+) के अनुरूप "हैव" से प्रतिस्थापित किया जाएगा।
उदाहरण 3:
यह उदाहरण दिखाता है कि यदि आप सरणियों को पैटर्न और प्रतिस्थापन के रूप में उपयोग करते हैं तो क्या होता है।
उदाहरण 4:
यह उदाहरण दिखाता है कि यदि आप सरणियों को पैटर्न, प्रतिस्थापन और विषय के रूप में उपयोग करते हैं तो क्या होता है।
उदाहरण 5:
यह उदाहरण /e संशोधक के उपयोग को दर्शाता है, अर्थात जब प्रतिस्थापन को php कोड के रूप में समझा जाता है। नीचे अक्षरों का लोअर से अपर केस में रूपांतरण दिया गया है।
उदाहरण 6:
यह उदाहरण गिनती तर्क का उपयोग दिखाता है। यहां परिणाम 2 के बराबर होगा, इसलिए दो प्रतिस्थापन थे।
मिश्रित preg_match(स्ट्रिंग पैटर्न, स्ट्रिंग विषय [, सरणी और मिलान [, पूर्णांक झंडे [, पूर्णांक ऑफसेट]]])पैटर्न पैटर्न के साथ मिलान के लिए दिए गए टेक्स्ट विषय को खोजता है
यदि अतिरिक्त मिलान पैरामीटर निर्दिष्ट किया गया है, तो यह खोज परिणामों से भर जाएगा। $matches तत्व में स्ट्रिंग का वह भाग शामिल होगा जो पूरे पैटर्न से मेल खाता है, $matches में स्ट्रिंग का वह भाग होगा जो पहले उप-पैटर्न से मेल खाता है, इत्यादि।
झंडे निम्नलिखित मान ले सकते हैं:
PREG_OFFSET_CAPTURE
यदि यह ध्वज निर्दिष्ट किया गया है, तो प्रत्येक पाए गए सबस्ट्रिंग के लिए स्रोत स्ट्रिंग में उसकी स्थिति इंगित की जाएगी। यह याद रखना महत्वपूर्ण है कि यह ध्वज लौटाए गए डेटा के प्रारूप को बदलता है: प्रत्येक घटना को एक सरणी के रूप में लौटाया जाता है, जिसके शून्य तत्व में पाया गया सबस्ट्रिंग होता है, और पहले तत्व में ऑफसेट होता है। यह ध्वज PHP 4.3.0 और उच्चतर में उपलब्ध है।
अतिरिक्त फ़्लैग पैरामीटर PHP 4.3.0 के बाद से उपलब्ध है।
खोज पंक्ति की शुरुआत से बाएं से दाएं की जाती है। वैकल्पिक ऑफसेट पैरामीटर का उपयोग खोज के लिए वैकल्पिक प्रारंभिक स्थिति निर्दिष्ट करने के लिए किया जा सकता है। अतिरिक्त ऑफसेट पैरामीटर PHP 4.3.3 के बाद से उपलब्ध है।
टिप्पणी:फ़ंक्शन को कॉल करते समय ऑफसेट पैरामीटर का उपयोग मिलान स्ट्रिंग को सबस्ट्र ($ विषय, $ ऑफसेट) के साथ बदलने के बराबर नहीं है preg_match_all(), क्योंकि पैटर्न में ऐसी स्थितियाँ हो सकती हैं ^ , $ या (? . तुलना करना:
जबकि यह उदाहरण
समारोह preg_match()पाए गए मिलानों की संख्या लौटाता है। यह 0 (कोई मिलान नहीं मिला) और 1 हो सकता है क्योंकि preg_match()पहला मैच मिलने के बाद काम करना बंद कर देता है। यदि आपको सभी मिलान खोजने या गिनने की आवश्यकता है, तो आपको फ़ंक्शन का उपयोग करना चाहिए preg_match_all(). समारोह preg_match()रिटर्न असत्ययदि निष्पादन के दौरान कोई त्रुटि होती है।
संकेत:फ़ंक्शन का उपयोग न करें preg_match(), यदि आपको किसी दिए गए स्ट्रिंग में सबस्ट्रिंग की उपस्थिति की जांच करने की आवश्यकता है। इसके लिए प्रयोग करें स्ट्रॉप्स()या स्ट्रस्ट्र(), क्योंकि वे इस कार्य को बहुत तेजी से पूरा करेंगे।
उदाहरण 2. पाठ में "वेब" शब्द खोजें
|
मैं लंबे समय से रेगुलर एक्सप्रेशन को समझना चाह रहा हूं। हालाँकि "इसका पता लगाएं" एक सशक्त शब्द है। नियमित अभिव्यक्ति में निपुण बनने की महान कला में महारत हासिल करने के लिए, आपको उनके साथ लगातार काम करने की आवश्यकता है। सिंटैक्स, विशेष वर्ण और संशोधक सीखना पर्याप्त नहीं है - आपको उनका उपयोग करने में सक्षम होने की आवश्यकता है। और उपयोग करने की क्षमता अनुभव के साथ आती है।
इस पोस्ट में मैं रेगुलर एक्सप्रेशन के उपयोग के उदाहरण पोस्ट करूंगा, जिसका काम मैं खुद समझ चुका हूं।
विशेष वर्णों की तालिका
विशेष वर्ण | विवरण |
---|---|
\ | भागने का प्रतीक. उदाहरण: '/seo\/smo/'- उस पंक्ति से मेल खाता है जिसमें seo/smo शामिल है। |
^ | डेटा प्रतीक की शुरुआत. उदाहरण: '/^एसईओ/'— उस पंक्ति से मेल खाता है जो SEO शब्द से शुरू होती है। |
$ | डेटा प्रतीक का अंत. उदाहरण: '/ब्लॉग$/'— उस पंक्ति से मेल खाता है जो ब्लॉग शब्द पर समाप्त होती है। |
. | पंक्ति फ़ीड के अलावा कोई भी वर्ण. उदाहरण: '/seo.ult/'- स्ट्रिंग seopult, seo9ult, seo@ult, आदि से मेल खाता है। |
इन कोष्ठकों के अंदर वर्ण सूचीबद्ध हैं, जिनमें से कोई भी किसी दिए गए स्थान पर दिखाई दे सकता है, लेकिन केवल एक। उदाहरण: '/सियोल्ट/'- केवल सियोपल्ट, सियोकल्ट या सियोमल्ट वाली पंक्तियों का मिलान किया जाएगा। | |
| | या। नीचे उदाहरण. |
() | सबमास्क. |
? | पूर्ववर्ती वर्ण या उपपैटर्न की एक या शून्य घटनाएँ। |
* | पूर्ववर्ती वर्ण या उपपैटर्न की किसी भी संख्या में घटनाएँ। शून्य सहित. |
+ | एक या अधिक घटनाएँ. |
उदाहरण: '/se+(op|om)?.*t/'- अक्षर s, फिर एक या अधिक अक्षर e, जिसके बाद संयोजन op या om एक बार प्रकट हो सकता है, या शायद एक बार नहीं, फिर किसी भी प्रतीक की कोई भी संख्या और अक्षर t। | |
(ए,बी) | a से b तक पूर्ववर्ती वर्ण या उपपैटर्न की घटनाओं की संख्या। उदाहरण: (0,) - * के समान, (0,1) - ? के समान, (3,5) - 3, 4 या 5 दोहराव। |
रेगुलर एक्सप्रेशन का उपयोग करके PHP स्क्रिप्ट के सरल उदाहरण:
1) पिछली और बाद की अभिव्यक्तियाँ।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // वह शब्द ढूंढें जिसमें बॉक्स के बाद आईएनजी आता है। यदि शब्द पाया जाता है, तो फ़ंक्शन सही लौटाएगा, यदि नहीं, तो गलत लौटाएगा।$पैटर्न1 = "/बॉक्स(?=आईएनजी)/" ; preg_match($पैटर्न1, "बॉक्स डे"); // गलत प्रीग_मैच ($पैटर्न1, "बॉक्सिंग डे" ); // सत्य // ऐसा शब्द ढूंढें जिसमें बॉक्स के बाद आईएनजी न हो। यदि शब्द पाया जाता है, तो फ़ंक्शन सही लौटाएगा, यदि नहीं, तो गलत लौटाएगा।$पैटर्न2 = "/बॉक्स(?!आईएनजी)/" ; preg_match($पैटर्न2, "आईफोन और आईपैड के लिए बॉक्स"); // ट्रू प्रीग_मैच ($पैटर्न2, "बॉक्सिंग डे क्या है?"); // गलत प्रीग_मैच ($ पैटर्न 2, "सीएसएस-मोज़-बॉक्स-शैडो"); // सत्य // ऐसा शब्द ढूंढें जहां ing बॉक्स से पहले नहीं है। यदि शब्द पाया जाता है, तो फ़ंक्शन सही लौटाएगा, यदि नहीं, तो गलत लौटाएगा।$पैटर्न3 = "/(? |
."; $text=preg_replace("~[^<]+?~","एसईओ ब्लॉग",$टेक्स्ट); इको $टेक्स्ट; ?>
3) किसी दी गई साइट का एलेक्सा रैंक मान प्राप्त करें और प्रदर्शित करें।
1 2 3 4 5 6 7 8 9 | "# (.*?) #सी", file_get_contents ( "http://www.alexa.com/siteinfo/($url)") , $a ) ; रिटर्न ट्रिम (str_replace ("," , "" , स्ट्रिप_टैग ($a [ 1 ] ) ) ); ) $एलेक्सा = एलेक्सा($url); इको $एलेक्सा; ?> |
.+?">(.*?)
4) पृष्ठ का शीर्षक प्राप्त करें और प्रदर्शित करें।
1 2 3 4 5 | (.*)<\/title>/s" , $str , $m ) ; प्रतिध्वनि $m [1 ] ; ?> |
(.*)<\/title>/s", $str, $m); प्रतिध्वनि $m; ?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | \n \r \t ]/", "" , $सामग्री ) ; // न्यूलाइन और टैब वर्णों को रिक्त स्थान से बदलें$सामग्री = preg_replace ("/(2,)/" , " " , $सामग्री ) ; // 2 से अधिक स्थानों को एक से बदलें preg_match_all("/ ]*href=(?:"| \"
)(.*)(?:"|\"
)[^<>]*>(.*)<\/a>/आईयू", $सामग्री , $लिंक ) ; // लिंक एकत्र करें यदि (आकार ($ लिंक [ 1 ] ) > 0) //यदि लिंक मिले($आउट = सरणी() ; // बाहरी लिंक की सरणी foreach ($links [1 ] as $v ) ( if (preg_match ("/http:\/\/(www\.)(0,1)"। $domain . "/i" , $v ) ) //आंतरिक कड़ियों को हटा दें( जारी रखें ; ) यदि ( preg_match ( "/(http:|https:)?\/\/(www\.)(0,1)(.*)/i", $v ) ) // बाहरी संदर्भ($आउट = $वी ; ) ) रिटर्न $आउट ; ) वापसी सरणी () ; ) $डोमेन = "साइट" ; $सामग्री = file_get_contents ("http://site/" ); $getoutlinks = getoutlinks($सामग्री, $डोमेन); के लिए ($i = 0; $i<=
count
($getoutlinks
)
;
$i
++
)
{
echo
$getoutlinks
[
$i
]
.
" " ; } ?> |
]*href=(?:"|\")(.*)(?:"|\")[^<>]*>(.*)<\/a>/iU", $content, $links); // यदि (sizeof($links) > 0) // लिंक एकत्रित करें // यदि लिंक पाए जाते हैं ( $out = array(); // प्रत्येक के लिए बाहरी लिंक की सारणी ($links as $v ) ( यदि (preg_match("/http:\/\/(www\.)(0,1)"।$domain."/i", $v)) // आंतरिक लिंक हटा दें ( जारी रखें; ) यदि (preg_match ("/(http:|https:)?\/\/(www\.)(0,1)(..com/"); $getoutlinks = getoutlinks($content, $domain); for ( $i = 0;$i<= count($getoutlinks); $i++)
{
echo $getoutlinks[$i]."
";
}
?>
कहाँ:
preg_replace- रेगुलर एक्सप्रेशन का उपयोग करके खोज और प्रतिस्थापन करता है।
preg_match- रेगुलर एक्सप्रेशन के विरुद्ध जाँच करता है।
preg_match_all- सभी मिलान ढूंढता है, जबकि preg_match केवल पहला मिलान ढूंढता है।
फ़ाइल_प्राप्त_सामग्री- फ़ाइल की सामग्री को एक पंक्ति के रूप में प्राप्त करें।
काट-छांट करना- एक पंक्ति के आरंभ और अंत में रिक्त स्थान हटा देता है।
str_replace- खोज स्ट्रिंग को प्रतिस्थापन स्ट्रिंग से बदल देता है।
स्ट्रिप_टैग- एक स्ट्रिंग से html और php टैग हटा देता है।
का आकार- चर में तत्वों की संख्या प्राप्त करता है।
गिनती करना- सरणी तत्वों की संख्या या ऑब्जेक्ट गुणों की संख्या की गणना करता है।