कम्प्युटरकार्यक्रम

PHP (regex) - यो के हो? उदाहरण र जाँच नियमित अभिव्यक्ति

कुनै पनि आधुनिक कार्यक्रम भाषामा पाठ काम गर्दा विकासकर्ताहरूले निरन्तर, इच्छित ढाँचा अनुपालनको लागि आगत प्रमाणीकरण को उद्देश्य पूरा खोज र परीक्षण टुकडे र चरित्र जानकारी प्रशोधन सञ्चालनका अन्य प्रकार प्रतिस्थापन गर्नुहोस्। समय को हानि, कोड अनुकूलता र यसको विकास र आधुनिकीकरण मा जटिलता निम्त्याउँछ तपाईंको आफ्नै मान्यता एल्गोरिदम विकास।

इन्टरनेट र वेब-डिजाइन भाषाहरुको तीव्र विकास यो कोड को लागि आवश्यक न्यूनतम रकम पाठ प्रक्रिया को बहुमुखी र संकुचित हालतमा सिर्जना आवश्यक छ। यो कुनै अपवाद छ र शुरुआती र PHP भाषा को व्यावसायिक विकासकर्ताहरूले बीच लोकप्रिय छ। पाठ ह्यान्डल गर्ने को कार्य सरल र दसौं र रेखा सयौं लागि कोड कम गर्न पाठ टेम्प्लेट रूपमा नियमित अभिव्यक्ति भाषा। धेरै समस्या छैन सबै बिना हल गर्न सकिन्छ।

PHP मा नियमित अभिव्यक्ति

«Ereg», «mb_ereg» र «preg» - PHP भाषा नियमित अभिव्यक्ति काम गर्न तीन तंत्र छ। सबै भन्दा साधारण इन्टरफेस «preg» जसको कार्यहरु को PCRE नियमित अभिव्यक्ति समर्थन, मूल पर्ल भाषा, PHP प्याकेजमा समावेश गरिएको छ जसको लागि विकास को पुस्तकालयको पहुँच प्रदान छ। नियमित अभिव्यक्ति भाषामा एक निश्चित ढाँचा अनुसार, दिइएको पाठ स्ट्रिङ मिल्दो कार्य Preg-खोज्दै।

विन्यास मूल कुराहरु

छोटो लेखमा रूपमा यसलाई विस्तार यो लागि त्यहाँ एक विशेष साहित्य छ, सम्पूर्ण नियमित अभिव्यक्ति विन्यास वर्णन गर्न असम्भव छ। हामी विकासकर्ता लागि अवसर देखाउने र कोड उदाहरण बुझ्न मात्र मुख्य तत्व प्रस्तुत।

PHP मा नियमित अभिव्यक्ति औपचारिक धेरै गाह्रो परिभाषित गरिएको छ, र यसैले विवरण सरल। एक नियमित अभिव्यक्ति एउटा पाठ स्ट्रिङ हो। यो एक समर्पित विभाजक टेम्पलेट र यसलाई सम्हाल्न बाटो संकेत को परिमार्जक हुन्छन्। ढाँचाको विभिन्न विकल्प र पुनरावृत्तिकोसङ्ख्या मा सम्भव समावेश।

उदाहरणका लागि, अभिव्यक्तिमा / \ घ {3} - \ घ {2} - \ घ {2} / m विभक्त टेम्पलेट पछि छ "/", र प्रतीकको «m» को परिमार्जक छ।

नियमित अभिव्यक्ति सबै शक्ति मेटा-वर्ण प्रयोग एन्कोड गरिएको छ। "\" - मुख्य भाषा metacharacter को बैकस्लैश छ। यो विपरीत मा वर्ण निम्न प्रकार परिवर्तन (अर्थात्। ई एक साधारण वर्ण वाइल्डकार्ड र विपरित मा रूपान्तरित)। «|», वैकल्पिक टेम्पलेट निर्दिष्ट अर्को महत्त्वपूर्ण metacharacter एक सीधा लाइन छ। मेटा-वर्ण बढी उदाहरण:

^ वस्तु वा स्ट्रिङ सुरु
( subpattern सुरु
) अन्त subpattern
{ सुरु परिमाणक
} अन्त परिमाणक
\ घ 0 देखि 9 दशमलव अंकको
\ डी छ कि एक नम्बर कुनै वर्ण
\ को खाली प्रतीक, अन्तरिक्ष, ट्याब,
\ W प्रतीक शब्दकोश

PHP, नियमित अभिव्यक्ति, अन्तरिक्ष छुट्टै मान्य वर्ण रूपमा छलफल, त्यसैले कहाँ भिन्न छन् XYZ र एबीसी को अभिव्यक्ति प्रशोधन।

subpatterns

कोष्ठकमा द्वारा PHP नियमित subpatterns, र तिनीहरूले कहिलेकाहीं "subexpressions" भनिन्छ। निम्न कार्यहरु:

  1. आवंटन विकल्प। उदाहरणका लागि, गर्मी ढाँचा (केहि | बर्ड |) शब्दहरू "गर्मी" संग coincides, "Firebird""तातो"। र कोष्ठक बिना यो केवल खाली स्ट्रिङ, "चरा" र "तातो" हुनेछ।

  2. "शानदार" subpattern। यो ढाँचा सव मिलान भने, त्यसपछि सबै मिलान फर्काउछ हो। स्पष्टताको लागि, हामी एउटा उदाहरण दिनुहोस्। निम्न नियमित अभिव्यक्ति दिएको: विजेता प्राप्त ((सुन | सुन जलप) (पदक | कप)) -मिलान लागि स्ट्रिङ, "विजेता एक सुन पदक हुन्छ।" प्रारम्भिक वाक्यांश साथै खोज परिणाम जारी गरिनेछ: "स्वर्ण पदक", "पदक", "सुन"।

संचालक पुनरावृत्तिकोसङ्ख्या (kvadrifikatory)

नियमित अभिव्यक्ति कम्पाइल मा अक्सर संख्या र प्रतिक को पुनरावृत्ति विश्लेषण गर्न आवश्यक छ। यो समस्या छैन भने पुनरावृत्तिकोसङ्ख्या धेरै छैन। तर हामी आफ्नो वास्तविक नम्बर थाहा बेला के गर्ने? यस मामला मा विशेष metacharacters प्रयोग गर्न आवश्यक छ।

संख्या निर्दिष्ट गर्न metacharacters - प्रयोग kvadrifikatory पुनरावृत्तिकोसङ्ख्या विवरण लागि। Kvadrifikatory दुई प्रकारका छन्:

  • कोष्ठक मा साधारण;
  • कम।

समग्र परिमाणक यस्तो एक्स {2,5} को रूप मा, ब्रेसहरू दुई नम्बर को रूप मा अनुमति पुनरावृत्तिकोसङ्ख्या तत्व को न्यूनतम र अधिकतम संख्या द्वारा छोयो। यदि पुनरावृत्तिकोसङ्ख्या अधिकतम संख्या ज्ञात छैन, दोस्रो तर्क निर्दिष्ट गरिएको छैन: X {2}।

संक्षिप्त quantifiers अनावश्यक भार विन्यास जोगिन गर्न पुनरावृत्तिकोसङ्ख्या भन्दा साधारण लागि प्रतीक हो। सामान्यतया तीन कटौती छन्:

1 * - शून्य वा बढी पुनरावृत्तिकोसङ्ख्या, गर्न {0,} बराबर छ।

2. + - एक वा बढी पुनरावृत्तिकोसङ्ख्या, अर्थात्, {1} ...

3.? - शून्य वा एउटा मात्र दोहोरिने - {0,1}।

उदाहरण regex

सबै भन्दा राम्रो पाठयपुस्तक - जो नियमित अभिव्यक्ति, उदाहरणहरू सिक्न ती लागि। हामी प्रयासको न्यूनतम आफ्नो अवसर देखाउँछ कि केही दिन। सबै कोड पूर्ण PHP 4.x र माथि को संस्करण उपयुक्त छ। पूर्णतया हामी पूर्णतया विन्यास छलफल जो जे .. Friedl, "नियमित अभिव्यक्ति", गरेर पुस्तक सिफारिस सबै भाषा सुविधाहरू विन्यास र उपयोग बुझ्न, र मात्र PHP, तर पनि एक अजिङ्गर, पर्ल, MySQL, Java, रूबी, र सी # लागि नियमित अभिव्यक्ति को उदाहरण छन्।

प्रमाणीकरण ई-मेल ठेगाना

कार्य। त्यहाँ आगन्तुक ठेगाना इमेल अनुरोध गरिएको छ जो मा इन्टरनेट पृष्ठ हो। नियमित अभिव्यक्ति सन्देशहरू पठाउनु अघि ठेगाना को विशुद्धता जाँच गर्नुपर्छ। चेक निर्दिष्ट मेलबक्स वास्तवमा अवस्थित र सन्देशहरू प्राप्त गर्ने ग्यारेन्टी छैन। तर यो सक्छन् स्पष्ट गलत ठेगाना मुक्ति पान।

निर्णय। कुनै पनि कार्यक्रम भाषा संग, PHP मा regex इमेल-ठेगाना प्रमाणिकरण विभिन्न तरिकामा लागू गर्न सकिन्छ, र यस लेखमा उदाहरण अन्तिम र केवल विकल्प छैन। त्यसैले, प्रत्येक मामला मा, हामी प्रोग्रामिंग र विशिष्ट कार्यान्वयन विकासकर्ता मा सम्पूर्ण निर्भर छ कि जब खातामा सेवन गर्नुपर्छ आवश्यकताहरु को सूची प्रदान गर्नेछ।

त्यसैले, एक मान्य इमेल tests कि अभिव्यक्ति, निम्न अवस्था जाँच गर्नुपर्छ:

  1. सुरु मा उपस्थिति @ प्रतीक लाइन, र कुनै अंतराल छन्।
  2. यस @ प्रतीक को ठेगाना को डोमेन भाग, डोमेन नाम को लागि मात्र मान्य वर्णहरू छन्। एउटै प्रयोगकर्ताको नाम लागू हुन्छ।
  3. प्रयोगकर्ता नाम जाँच गर्दा आवश्यक त्यस्तो एपोस्ट्रोफी वा ठाडो लाइन रूपमा विशेष वर्ण को उपस्थिति निर्धारण छ। यस्तो प्रतीक संभावित खतरनाक छन् र आक्रमण SQL-इंजेक्शन कि यस्तो प्रकार मा निहित गर्न सकिन्छ। ठेगाना जोगिन।
  4. प्रयोगकर्ता नाम स्ट्रिङ पहिलो वा अन्तिम वर्ण हुन जो सक्छ केवल एक बिन्दु, अनुमति दिन्छ।
  5. डोमेन नाम कम्तिमा दुई र छ भन्दा अधिक क्यारेक्टर समावेश गर्नुपर्छ।

उदाहरणका लागि, खातामा लिएर यी अवस्था सबै निम्न आंकडा मा देख्न सकिन्छ।

एउटा URL को प्रमाणीकरण

कार्य। निर्दिष्ट पाठ स्ट्रिङ मान्य छ कि छैन भनेर जाँच ठेगाना URL। फेरि एक पटक, हामी नियमित अभिव्यक्ति URL जाँचले विभिन्न तरिकामा लागू गर्न सकिन्छ भनेर याद गर्नुहोस्।

निर्णय। निम्नानुसार हाम्रो अन्तिम संस्करण हो:

/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /

अब विस्तार यसको घटक रेखाचित्र प्रयोग गरेर विश्लेषण।

दावी 1 युआरएल वर्ण हुनुपर्छ अघि छैन
दावी 2 अनिवार्य उपसर्ग उपस्थिति जाँच «http»
वस्तु 3 कुनै प्रतीक हुनुपर्छ
दावी 4 यदि त्यहाँ «को», एक सुरक्षित जडान गर्न URL अंक «https»
दावी 5 को आवश्यक भाग को "//"
दावी 6 कुनै वर्ण
पी। 7-9 को प्रमाणीकरण पहिलो स्तर डोमेन र बिन्दु को उपस्थिति
p.10-13 दोस्रो स्तर र बिन्दु लेखन को डोमेन प्रमाणीकरण
p.14-17

फाइल संरचना URL - संख्या, अक्षर, अन्डरस्कोरहरू, ड्यासहरू, डट्स को एक सेट, र अन्त मा एक स्ल्यास

क्रेडिट कार्ड नम्बर जाँच

कार्य। तपाईं भन्दा साधारण भुक्तानी प्रणाली को प्रवेश क्रेडिट कार्ड नम्बर को मान्यता लागू गर्न आवश्यक छ। मात्र कार्ड एक भेद भिषा र मास्टर कार्ड।

निर्णय। अभिव्यक्ति सिर्जना गर्दा इनपुट कोठा मा अंतराल को सम्भावित उपस्थिति खातामा लिनु आवश्यक छ। नक्सामा अंक सजिलो पढाइ र श्रुतिलेखन लागि समूह विभाजित भएको हुन्छ। त्यसैले, यो एक व्यक्ति यसरी एक नम्बर प्रविष्ट गर्न (अर्थात्। ई स्पेस प्रयोग गर्दै) प्रयास गर्न सक्नुहुन्छ कि प्राकृतिक छ।

खातामा सम्भव स्पेस वा हाइफन लिन्छ कि एक सार्वभौमिक अभिव्यक्ति लेख्न, बस अंक बाहेक सबै वर्ण छोड्न भन्दा बढी जटिल छ। तसर्थ, हामी अंक बाहेक सबै वर्ण हटाउँदछ जो एक वाइल्डकार्ड अभिव्यक्ति / डी, प्रयोग गर्न सुझाव दिन्छौं।

अब तपाईं चेक नम्बर सीधै जान सक्नुहुन्छ। सबै कम्पनीहरु, क्रेडिट कार्ड जारीकर्ता एक अद्वितीय संख्या ढाँचा प्रयोग गर्नुहोस्। उदाहरण मा प्रयोग गरिन्छ, र ग्राहक कम्पनी को नाम प्रविष्ट गर्न आवश्यक छैन - यो संख्या निर्धारण गरिन्छ। भिषा कार्ड सधैं संख्या 4 सुरु र 13 वा 16 अंकमा एक लम्बाइ छ। मास्टर कार्ड फलस्वरूप लामो नम्बर 16 संग 51-55 को दायरा मा शुरू हुन्छ, हामीले निम्न अभिव्यक्ति प्राप्त:

आदेश प्रशोधन अघि थप मा Luhn अल्गोरिदम गणना छ जो नम्बर, अन्तिम अंक परीक्षण गर्न सकिन्छ।

फोन नम्बर पुष्टि गर्न

कार्य। प्रविष्ट गरिएको फोन नम्बर को विशुद्धता जाँच गर्दै।

निर्णय। तय र मोबाइल टेलिफोन नम्बर मा अंक को संख्या एकदम, फरक देश यति सार्वभौमिक नियमित अभिव्यक्ति, फोन नम्बर सही असम्भव प्रयोग जाँच गर्नुहोस्। तर अन्तर्राष्ट्रिय नम्बर ढाँचा जाँच लागि सख्त ढाँचा र सिद्ध छ। अझ थप र थप राष्ट्रिय टेलिफोन संचालक नै मानक पूरा गर्न प्रयास ताकि। निम्नानुसार कोठा संरचना छ:

+ CCC.NNNNNNNNNNxEEEE, जहाँ:

- सी - 1-3 अङ्कहरू देश कोड हो।

- N - नम्बर अप गर्न 14 अंक।

- ई - वैकल्पिक विस्तार।

प्लस एक अपरिहार्य तत्व हो, र साइन एक्स मात्र आवश्यक विस्तार वर्तमान छ।

फलस्वरूप हामी निम्न अभिव्यक्ति छ:

^ \ + [0-9] {1,3 } \ [0-9] {4,14}। (:। X +)? $

दायरामा नम्बर

कार्य। यसलाई एक निश्चित दायरा संयोग पूर्णांक सुनिश्चित गर्न आवश्यक छ। साथै, यो एक नियमित अभिव्यक्ति दायराबाट मात्र संख्या पत्ता लगाउन आवश्यक छ।

निर्णय। यहाँ सबै भन्दा साधारण अवस्थामा केही गर्न केही अभिव्यक्ति हो:

1 बाट 24 घण्टा निर्धारण ^ (1 [0-2] | [1-9]) $
महिनाको 1-31 मा दिन ^ (3 [01] | [12] [0-9] | [1-9]) $
सेकेन्ड वा मिनेट 0-59 ^ [1-5]? [0-9] $
1 100 देखि एक नम्बर * (100 |? [1-9] [0-9]) $
दिन वर्ष 1-366 को ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

खोज आईपी-ठेगाना

कार्य। यसलाई दिइएको स्ट्रिङ मान्य 000.000.000.000-255.255.255.255 देखि दायरामा IPv4 ढाँचामा आईपी-ठेगाना छ कि छैन भनेर निर्धारण गर्न आवश्यक छ।

निर्णय। संग PHP को भाषा मा कुनै पनि समस्या रूपमा, नियमित अभिव्यक्ति धेरै varintov छ। उदाहरणका लागि, यो:

अभिव्यक्ति को अनलाइन जाँच

सही regex जाँच लागि शुरुआती किनभने "नियमित" कार्यक्रम भाषाहरू भिन्न जो विन्यास को जटिलता, को गाह्रो हुन सक्छ। यो समस्या समाधान गर्न, त्यहाँ सजिलो तपाईं वास्तविक पाठ सिर्जना टेम्पलेट को विशुद्धता जाँच गर्न बनाउन धेरै अनलाइन परीक्षकको अभिव्यक्ति हो। प्रोग्रामर अभिव्यक्ति र प्रमाणिकरण डाटा प्रवेश र तत्काल प्रक्रिया को परिणाम हेर्नुहोस्। सामान्यतया त्यहाँ सबैभन्दा विस्तारित भाषाहरूको लागि नियमित अभिव्यक्ति, उदाहरणहरू र कार्यान्वयन मतभेद विवरण जो एक सन्दर्भ खण्ड, वर्तमान छ।

तर पूर्ण भरोसा अनलाइन सेवा परिणाम PHP प्रयोग गर्ने सबै विकासकर्ताहरूको लागि सिफारिस गरिएको छैन। एक नियमित अभिव्यक्ति लेखिएको छ र व्यक्तिमा प्रमाणित, योग्यता उठ्छ र त्रुटिहरू को अभाव ग्यारेन्टी।

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ne.unansea.com. Theme powered by WordPress.