पीएचपी मध्ये नियमित अभिव्यक्तींचा परिचय

पीएचपी मध्ये नियमित अभिव्यक्तींचा परिचय
द्वारे बर्नार्ड पेह

लिनक्स आणि युनिक्स मध्ये, मजकूर नमुने निर्दिष्ट करण्यासाठी बर्‍याच अनुप्रयोगांद्वारे सामान्यतः वापरला जाणारा वाक्यरचना नियमित अभिव्यक्ती किंवा शॉर्ट फॉर्ममध्ये म्हणून ओळखली जाते – regex. नमुन्यांचे वर्णन करण्यासाठी रेजेक्स हे एक अतिशय शक्तिशाली तंत्र आहे आणि बरेच प्रोग्राम त्यांचे वर्णन करण्यासाठी वापरतात वर्णांचे अनुक्रम जुळले जातील. ‘ग्रीप’ सारखे शोध कार्यक्रम’ रेजेक्सवर जोरदारपणे अवलंबून रहा. मुळात रेजेक्स लिनक्स जगात कोर बनवते. पर्ल सारख्या बर्‍याच स्क्रिप्टिंग भाषा, रुबी, पीएचपी…ईटीसीने रेजेक्स फंक्शन्समध्ये देखील तयार केले आहे. तर आपण पाहू शकता, नियमित अभिव्यक्ती शिकणे महत्वाचे आहे कारण ते बर्‍याच ठिकाणी बरेच वापरले जातात आणि कदाचित भविष्यात कदाचित अधिक.

रेजेक्स प्रथम भीतीदायक असू शकते परंतु आपण मूलभूत गोष्टी मिळवू शकल्यास, हे समजणे खरोखर फार कठीण नाही. या लेखात, पीएचपी अनुप्रयोग लिहिताना आम्ही रेजेक्स चित्रात कसा येतो हे आम्ही पहात आहोत.

आतापर्यंत द्रुत सारांश करण्यासाठी, नियमित अभिव्यक्ती म्हणजे शाब्दिक वर्णांचा क्रम, वाइल्डकार्ड, सुधारक आणि अँकर.

शाब्दिक वर्ण

शाब्दिक वर्ण अक्षरे आहेत, फक्त स्वतःशी जुळणारे अंक आणि विशेष वर्ण. उदाहरणे एबीसी आहेत, 123, ~@ आणि इतर (जरी काही वर्ण राखीव आहेत).

– समावेश श्रेणी [एम-एन] एम ते एन पर्यंतच्या श्रेणीमध्ये समाविष्ट असलेल्या कोणत्याही वर्णांशी जुळते.

उदाहरण ‘[ए-झेड]’ ए ते झेड श्रेणीमध्ये येणा any ्या कोणत्याही अल्फा वर्णांशी जुळेल.

– बहिष्कार श्रेणी [^एम-एन] एम ते एन पर्यंतच्या श्रेणीमध्ये समाविष्ट नसलेल्या कोणत्याही वर्णांपैकी एक जुळते. उदाहरण ‘[^0-9]’ कोणत्याही अंजीर नसलेल्या वर्णांशी जुळेल.

– एक कालावधी “.” कोणत्याही वर्णांशी जुळते. हे वाईल्डकार्ड म्हणून देखील ओळखले जाते. उदाहरण ‘एसी’ ‘एईसी’ जुळेल, ‘एसीसी’, ‘ए@ए’ आणि असेच.

– सुटका वर्ण ” विशेष वर्णांचे स्पष्टीकरण सक्षम करा. उदाहरण ‘एसी’ ‘एसी’ जुळेल’ फक्त. लक्षात ठेवा ’.’ वाइल्डकार्डचे प्रतिनिधित्व करण्यासाठी आरक्षित पात्र आहे? म्हणून कालावधी जुळण्यासाठी, म्हणजे ‘.’, आम्हाला त्याप्रमाणे सुटण्याची गरज आहे.’

– अभिव्यक्ती [:माग:] सर्व अल्फा-न्युमेरिक वर्णांशी जुळेल. हा एक शॉर्टकट आहे [ए-झेडए-झेड 0-9]. जसे आपण पाहू शकता, हे खरोखर शॉर्टकट नाही. अभिव्यक्ती [:माग:] काही लोकांसाठी लक्षात ठेवणे सोपे आहे.

– अभिव्यक्ती [:अल्फा:] सर्व अल्फा वर्णांशी जुळेल. हा एक शॉर्टकट आहे [ए-झेड-झेड].

– अभिव्यक्ती [:रिक्त:] जागा किंवा टॅबशी जुळेल.

– अभिव्यक्ती [:अंक:] संख्यात्मक अंकी जुळेल. हा एक शॉर्टकट आहे [0-9].

– अभिव्यक्ती [:लोअर:] सर्व लोअरकेस अक्षरे जुळतील. हा एक शॉर्टकट आहे [ए-झेड].

– अभिव्यक्ती [:अप्पर:] सर्व अपरकेस अक्षरे जुळतील. हा एक शॉर्टकट आहे [ए-झेड].

– अभिव्यक्ती [:पॉईंट:] सर्व मुद्रण करण्यायोग्य वर्णांशी जुळेल, मोकळी जागा आणि अल्फान्यूमरिक्स वगळता.

– अभिव्यक्ती [:जागा:] व्हाइटस्पेस वर्ण जुळेल.

सुधारक

एक सुधारक तत्काळ आधीच्या पॅटर्न कॅरेक्टरचा अर्थ बदलतो.

– एक तारांकित (‘*’) सामने 0 किंवा मागील मुदतीपेक्षा अधिक. उदाहरण ‘अ*’ जुळेल ”, ‘ए’, ‘एए’, ‘आआआआ’ आणि असेच (चा वापर लक्षात घ्या ”. याचा अर्थ असा आहे की अभिव्यक्ती काहीच जुळत नाही).

– एक प्रश्न चिन्ह (‘?’’) सामने 0 किंवा 1 मागील मुदतीचा. उदाहरण ‘अ?’ जुळेल ” आणि ‘अ’ फक्त.

– एक अधिक चिन्ह (‘+’) सामने 1 किंवा मागील मुदतीपेक्षा अधिक. उदाहरण ‘ए+’ ‘ए’ जुळेल, 'Aaaaaaaaa’ आणि असेच. तो जुळणार नाही ”.

– {मी,एन} आधीच्या टर्मच्या एम आणि एन घटनांमधील सामने. उदाहरण ‘अ{1,3}’ ‘ए’ जुळेल, ‘एए’ आणि ‘एएए’ फक्त.

– {एन} मागील टर्मच्या अगदी घटनेशी जुळते. उदाहरण ‘अ{2}’ ‘एए’ जुळेल’ फक्त.

अँकर

अँकर सारख्या नमुन्यासाठी संदर्भ स्थापित करतात “एका शब्दाची सुरुवात” किंवा “शब्दाचा शेवट”.

– पाईक ‘^’ एका ओळीची सुरूवात चिन्हांकित करते. उदाहरण ‘^http’ ‘HTTP’ ने सुरू होणार्‍या कोणत्याही नवीन ओळीशी जुळेल.

– डॉलर चिन्ह ‘$’ एका ओळीचा शेवट चिन्हांकित करतो. उदाहरण ‘नंतर $’ ‘नंतर’ समाप्त होणार्‍या कोणत्याही ओळीशी जुळेल. (पीएचपी मधील व्हेरिएबल्स सुरू होते $. त्यात गोंधळ न करण्याचा प्रयत्न करा).

गटबद्ध

गटबद्ध करणे ‘( )’ सुधारकांना केवळ त्वरित प्रक्रिया निर्दिष्ट करण्याऐवजी रेजेक्स स्पेसिफायर्सच्या गटांवर अर्ज करण्यास अनुमती देते. उदाहरण ‘( एए | बीबी )’ एकतर ‘एए’ जुळेल’ किंवा ‘बीबी’

कंटाळवाणे सामग्री पुरेसे, रेजेक्सचा सिद्धांत चांगल्या वापरामध्ये ठेवण्याची वेळ आली आहे.

पीएचपी अंमलबजावणी

तेथे आहेत 2 रेजेक्सचे मुख्य रूपे, पर्ल-सुसंगत रीजेक्स (PCRE) आणि पोझिक्स-विस्तारित. या अंमलबजावणीसाठी पीएचपी बर्‍याच कार्ये ऑफर करते 2 रेजेक्सचे प्रकार. पीएचपी मध्ये, सर्वात सामान्यपणे वापरलेले पीसीआरई फंक्शन म्हणजे ‘प्रीग_मॅच’’ आणि पोझिक्स-विस्तारित रेजेक्समध्ये, 'एरेग'. दोन्ही वाक्यरचना थोडी वेगळी परंतु तितकीच शक्तिशाली आहेत. ‘प्रीग_मॅच’ वापरण्याचे प्राधान्य’ 'ते’ झेंडने सूचित केले की प्रीग_मॅच किंचित वेगवान आहे. मी ‘एरेगी’ वापरण्यास प्राधान्य देतो’ फक्त लिनक्स प्रशासनातील माझ्या पार्श्वभूमीमुळे.

उदाहरण 1: युनायटेड स्टेट्स जुळत आहे 5 किंवा 9 अंक पिन कोड

यूएसए मधील पिन कोडचे खालील स्वरूप आहे ##### किंवा #####-#### कुठे # एक अंक आहे. आपण ऑनलाइन फॉर्ममधून सबमिट केलेला पिन कोड सत्यापित करू इच्छित असल्यास, आपल्याला आपल्या स्क्रिप्टमध्ये रीजेक्स वापरण्याची आवश्यकता आहे ते सत्यापित करण्यासाठी. मॅचिंग पॉसिक्स-विस्तारित रेजेक्स नमुना असेल:

[[:अंक:]]{5}(-[[:अंक:]]{4})?

गोंधळलेला? प्रतीक्षा करा, मला का ते समजावून सांगा. हे रेजेक्स मध्ये विभागले गेले आहे 2 भाग: [[:अंक:]]{5} आणि (-[[:अंक:]]{4})?.

पहिला भाग: ‘[[:अंक:]]’ म्हणजे अंक श्रेणी आणि {5} म्हणजेच अंक होणे आवश्यक आहे 5 वेळा.

दुसरा भाग: ब्रॅकेट ‘( )’ गट ‘--[[:अंक:]]{4}’ एकत्र आणि ‘?’ म्हणजे अभिव्यक्ती ‘(-[[:अंक:]]{4})’ एकतर होऊ शकते 0 किंवा 1 वेळ.

पीएचपी मध्ये रेजेक्सची अंमलबजावणी करण्यासाठी, आम्ही खालील कोड वापरतो:

$झिपकोड्स = ‘एक्सएक्सएक्सएक्सएक्सएक्सएक्सएक्सएक्सएक्स’;

$नमुना = ‘[[:अंक:]]{5}(-[[:अंक:]]{4})?’’;

जर (EREG($नमुना,$झिपकोड्स)) {

प्रतिध्वनी “जुळलेले सापडले “;

}

अन्यथा {

प्रतिध्वनी “सामना सापडला नाही”;

}

उदाहरण 2: जुळणार्‍या तारखा

म्हणा आम्ही वापरकर्त्याद्वारे प्रविष्ट केलेल्या तारखा सत्यापित करायच्या आहेत. जर आम्ही फक्त तारखा स्वीकारल्या तर “Yyyy-mm-dd” किंवा “Yyyy-M-d”, रेजेक्स नमुना असेल

[0-9]{4}(-[0-9]{1,2})+

‘+’’ संज्ञा मागे (-[0-9]{1,2}) म्हणजे हा शब्द किमान एकदा आला पाहिजे. लक्षात घ्या की मी रेजेक्स म्हणून पुन्हा लिहू शकतो:

[[:अंक:]]{4}(-[[:अंक:]]{1,2})+

किंवा

[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}

जसे आपण पाहू शकता, समस्येचे बरेच निराकरण असू शकते…

निष्कर्ष

रेजेक्स प्रथम पचविणे कठीण असू शकते परंतु आपण अधिक सराव करण्यास सक्षम असल्यास तर्कशास्त्र सोपे आहे. पीएचपी शिकण्याइतकेच रेजेक्स शिकणे महत्वाचे आहे. वेब-डेव्हलपर.सिटक्रिटिक.नेटवर अधिक उदाहरणे पाहिली जाऊ शकतात. शुभेच्छा.

बर्नार्ड पेह वेब टेक्नॉलॉजीजचा एक उत्कृष्ट उत्कटता आहे आणि सह-संस्थापकांपैकी एक Setecritic.net साइट पुनरावलोकने. तो अनुभवी वेब डिझाइनर आणि विकसकांसह अधिक काम करतो 5 वर्षे, व्यावसायिक आणि गैर-व्यावसायिक वेबसाइट विकसित करणे आणि डिझाइन करणे. त्याच्या मोकळ्या वेळात, तो वेबसाइट पुनरावलोकने करतो, फ्रीलान्स एसईओ आणि पीएचपी काम. येथे त्याच्या ब्लॉगला भेट द्या मेलबर्न पीएचपी

लेख स्रोत: http://EzineArticles.com/?तज्ञ = बर्नार्ड_पेह

http://EzineArticles.com/?परिचय-ते-नियमित-अभिव्यक्ती-इन-पीएचपी&आयडी = 222113

संबंधित प्रतिमा:

लेखक: अंडी कर्मचारी

अंडी = (तंत्रज्ञान + इंटरनेट + मुक्त स्रोत + लिनक्स ) नाम (बातम्या + पुनरावलोकने + बुद्धिमत्ता)

प्रतिक्रिया द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *