கணினிகள், நிரலாக்க
PHP (அது regex) - அது என்ன? எடுத்துக்காட்டுகள் மற்றும் சோதனை வழக்கமான வெளிப்பாடுகள்
எந்த நவீன நிரலாக்க மொழியில் உரையுடன் பணிபுரியும் போது, டெவலப்பர்கள் தொடர்ந்து விரும்பிய வடிவத்துடன் இணக்க உள்ளீடு சரிபார்த்தல் நோக்கங்கள் சந்திக்க தேட மற்றும் சோதனை துண்டுகள் மற்றும் பாத்திரத் தகவலை செயலாக்க நடவடிக்கைகளை மற்ற வகையான பதிலாக. நேரம் இழப்பு, குறியீடு ஒத்தியல்பில் மற்றும் அதன் வளர்ச்சி மற்றும் நவீனமயமாக்கல் உள்ள சிக்கலான வழிவகுக்கிறது உங்கள் சொந்த சரிபார்த்தல் நெறிமுறைகள் உருவாக்குங்கள்.
இணையம் மற்றும் இணைய வடிவமைப்பு மொழிகளை விரைவான வளர்ச்சி இந்த குறியீடு தேவைப்படும் குறைந்தபட்ச அளவு உரை செயலாக்க தொடர்பான பல்வேறு மற்றும் கச்சிதமான சாதனங்களின் உருவாக்கம் தேவை. அது விதிவிலக்கல்ல மற்றும் ஆரம்ப மற்றும் PHP மொழியின் தொழில்முறை டெவலப்பர்கள் மத்தியில் பிரபலமாக உள்ளது. உரை டெம்ப்ளேட்டாகக் வழக்கமான வெளிப்பாடு மொழி உரை கையாளும் பணி எளிமைப்படுத்த மற்றும் கணக்கான மற்றும் வரிகளை நூற்றுக்கணக்கான குறியீடு குறைக்க. பல சிக்கல்களுக்கு அனைத்து அது இல்லாமல் தீர்க்க முடியாது.
PHP இல் வழக்கமான கோவைகள்
«Ereg» «mb_ereg» மற்றும் «preg» - PHP மொழி வழக்கமான வெளிப்பாடுகள் வேலை மூன்று முறைகள் உள்ளன. மிகவும் பொதுவான இடைமுகம் «preg», அதன் செயல்பாடுகளை PCRE வழக்கமான வெளிப்பாடு ஆதரவு, முதலில் பேர்ல் மொழி, PHP தொகுப்பில் சேர்க்கப்பட்டுள்ளது இது உருவாக்கப்பட்டது நூலகத்தில் அணுக வழங்க உள்ளது. , Preg கோரும் ஒரு குறிப்பிட்ட உரை சரம் பொருத்தலில் செயல்பாடுகளை வழக்கமான வெளிப்பாடுகள் மொழியில் ஒரு குறிப்பிட்ட முறை படி.
தொடரியல் அடிப்படைகள்
ஒரு சிறு கட்டுரையை வெளியிட்டது ஒரு பகுதியாக இது ஒரு சிறப்பு இலக்கியம் உள்ளது இந்த முழு வழக்கமான வெளிப்பாட்டு வாக்கிய அமைப்பின் விரிவாக விவரிக்க இயலாது. டெவலெப்பர் வாய்ப்புகளை காட்ட குறியீடு உதாரணங்கள் புரிந்து கொள்ள மட்டுமே முக்கிய கூறுகளை முன்வைக்க.
PHP இல் வழக்கமான வெளிப்பாடு முறையாக மிகவும் கடினம் வரையறுக்கப்பட்ட, எனவே விளக்கம் எளிமைப்படுத்த. ஒரு வழக்கமான வெளிப்பாடு ஒரு உரை சரம் ஆகும். அது ஒரு பிரத்யேக பிரிப்பான் டெம்ப்ளேட் மற்றும் அது கையாள வழி காட்டும் மாற்று கொண்டுள்ளது. வடிவங்கள் பல்வேறு மாற்று மற்றும் மறுபடியும் மறுபடியும் சேர்ப்பதற்காக.
உதாரணமாக, வெளிப்பாட்டில் / \ ஈ {3} - \ ஈ {2} - \ ஈ {2} / மீ பிரிப்பு "/", டெம்ப்ளேட் தொடர்ந்து, மற்றும் சின்னமாக «மீ» மாற்றியாகும்.
வழக்கமான வெளிப்பாடுகள் அனைத்து சக்தி மெட்டா எழுத்துக்கள் பயன்படுத்தி குறியீடு செய்யப்படுகிறது. "\" - முக்கிய மொழி மெட்டா எழுத்துக்குறி பின்சாய்வுக்கோடானது உள்ளது. அது எதிர் மீது எழுத்துக்களை தொடர்ந்து வகை மாற்றுகிறது (அதாவது. ஈ ஒரு சாதாரண பாத்திரம் வைல்டு கார்டு மற்றும் மாறாகவும் ஒரு மாற்றப்பட்டது). «|», மாற்று டெம்ப்ளேட் குறிப்பிடுகிறது மற்றொரு முக்கியமான மெட்டா எழுத்துக்குறி ஒரு நேர் கோட்டில் உள்ளது. மெட்டா எழுத்துக்கள் பெரும்பாலான எடுத்துக்காட்டுகள்:
| ^ | பொருள் அல்லது ஒரு சரம் தொடங்க |
| ( | subpattern தொடங்க |
| ) | முடிவு subpattern |
| { | தொடக்க அளவீட்டுருவைப் |
| } | முடிவு அளவீட்டுருவைப் |
| \ ஈ | 0 முதல் 9 வரை தசம இலக்கம் |
| \ டி | ஒரு எண்ணாக இல்லாத எந்த பாத்திரம் |
| \ ங்கள் | காலியாக சின்னமாக, விண்வெளி, தாவல், |
| \ W | சின்னமாக அகராதி |
PHP கோப்புகள், வழக்கமான வெளிப்பாடுகள், ஒரு தனி சரியான எழுத்து கருதப்படுகிறது விண்வெளி, அதனால் அங்கு மாறுபட்டதாக இருக்கும் இஸ்ஸட் மற்றும் ஏபிசி வெளிப்பாடு செயல்படுத்துகிறது.
subpatterns
அடைப்புக்குறிக்குள் மூலம் PHP வழக்கமான subpatterns, மற்றும் அவர்கள் சில நேரங்களில் "subexpressions" என்று அழைக்கப்படுகின்றன. பின்வரும் செயல்பாடுகளை மேற்கொள்ளுதல்:
ஒதுக்கீடு மாற்று. உதாரணமாக, வெப்பம் முறை (ஏதாவது | பறவை |) வார்த்தைகள் "வெப்பம்" இணைந்தே, "பயர்பேர்ட்டை" மற்றும் "ஹாட்". மற்றும் அடைப்புக்குறிக்குள் இல்லாமல் அது வெற்று சரம், "பறவை" மற்றும் "ஹாட்" இருக்கும்.
"பிரம்மாண்ட" subpattern. இந்த முறை உட்சரம் பொருந்தும் என்றால், பின்னர் அனைத்து போட்டிகளில் திரும்புகிறார் என்று பொருள். தெளிவாகச் சொல்வதென்றால், நாம் ஒரு உதாரணம் கொடுக்க. பின்வரும் வழக்கமான வெளிப்பாடு கொடுக்கப்பட்ட: - மற்றும் போட்டிகளில் சரம், "வெற்றி தங்கப் பதக்கம் பெறுகிறார்." வெற்றி பெறுகிறது (கப்) (தங்கம் | | தங்கப் பதக்கம் பூசப்பட்ட) () ஆரம்ப சொற்றொடர் கூடுதலாக, தேடல் பெறுபேறுகள் வெளியிடப்பட்ட வேண்டும்: "தங்கப்பதக்கம்", "பதக்கங்களை", "தங்கம்".
ஆபரேட்டர்கள் மறுபடியும் மறுபடியும் (kvadrifikatory)
வழக்கமான வெளிப்பாடு ஒடுக்குவதற்கான எண்கள் மற்றும் குறியீடுகள் மீண்டும் ஆய்வு செய்ய அவசியமானதாக இருக்கிறது. இந்த ஒரு பிரச்சனை, இல்லை என்றால் மறுபடியும் மறுபடியும் நிறைய அல்ல. ஆனால் நாம் தங்களது சரியான எண் தெரியாது போது என்ன செய்ய? இந்த வழக்கில் சிறப்பு மெட்டா எழுத்துக்குறிகள் பயன்படுத்த வேண்டும்.
எண் குறிப்பிட மெட்டா எழுத்துக்குறிகள் - பயன்படுத்தப்படும் kvadrifikatory மறுபடியும் மறுபடியும் விளக்கத்திற்கு. Kvadrifikatory இரண்டு வகையான உள்ளன:
- அடைப்புக்குறிக்குள் பொதுவான;
- குறைக்கப்பட்டது.
ஒட்டுமொத்த அளவீட்டுருவைப் இரண்டு போன்ற எக்ஸ் {2,5}, ப்ரேஸ் எண்கள் வடிவில் அனுமதி மறுபடியும் மறுபடியும் உறுப்பு குறைந்தபட்ச மற்றும் அதிகபட்ச தொடப்பட்டதாய். என்றால் மறுபடியும் மறுபடியும் அதிகபட்ச எண்ணிக்கை அறியப்படவில்லை, இரண்டாவது வாதம் குறிப்பிடப்படவில்லை: X {2}.
சுருக்கப்பட்ட அளவீட்டுருக்களின் தேவையற்ற ஓவர்லோடிங்கிலிருந்து தொடரியல் தவிர்க்கும் பொருட்டு மறுபடியும் மறுபடியும் மிகவும் பொதுவான சின்னங்கள் உள்ளன. பொதுவாக மூன்று வெட்டுக்கள் உள்ளன:
1. * - பூஜ்யம் அல்லது அதற்கு மேற்பட்ட மறுபடியும் மறுபடியும், {0,} நிகரானதாகும்.
2. + - ஒன்று அல்லது அதற்கு மேற்பட்ட மறுபடியும் மறுபடியும், அதாவது {1} ...
3.? - பூஜ்யம் அல்லது ஒரே ஒரு மீண்டும் - {0,1}.
எடுத்துக்காட்டுகள் அது regex
சிறந்த பாடநூல் - வழக்கமான வெளிப்பாடுகள், உதாரணங்கள் அறிய விரும்பாதவர்களுக்காக. நாம் முயற்சி ஒரு குறைந்தபட்ச தங்கள் வாய்ப்புகளை காட்டும் ஒரு சில கொடுக்க. அனைத்து குறியீடு மேலே PHP 4.x மற்றும் பதிப்புகள் உடன் முழுமையாக ஏற்றதாக உள்ளது. முழுமையாக நாம் ஜே .. Friedl, "வழக்கமான வெளிப்பாடுகள்", முழுமையாக தொடரியல் கருதப்படுகிறது இதன் மூலம் புத்தகம் பரிந்துரை அனைத்து மொழி அம்சங்கள் தொடரியல் மற்றும் பயன்பாடு புரிந்து கொள்வதற்கு, மற்றும் மட்டுமே PHP இல்லை, ஆனால் ஒரு பைதான், பேர்ல், மை.எஸ்.க்யூ.எல் ஜாவா, ரூபி மற்றும் C # க்கான சுருங்குறித் தொடர்களின் எடுத்துக்காட்டுக்கள் உள்ளன.
மதிப்பீட்டு மின்னஞ்சல் முகவரி
டாஸ்க். இது பார்வையாளர் முகவரியை மின்னஞ்சல் கோரப்படும் ஒரு இணைய பக்கம் உள்ளது. வழக்கமான வெளிப்பாடு செய்தி அனுப்பும் முன்பு முகவரிகள் சரியான சரிபார்க்க வேண்டும். காசோலை குறிப்பிட்ட அஞ்சல் பெட்டி நிஜமாகவே இருக்கிறார் செய்திகளைப் பெறுவதாக என்ற உத்தரவாதம் கிடையாது. ஆனால் அது முடியும் வெளிப்படையாக தவறான முகவரிகளை வேண்டப்படாதவர்களை.
முடிவு. எந்த நிரலாக்க மொழி போல, PHP இல் அது regex மின்னஞ்சல் முகவரியைப் சரிபார்ப்பு வெவ்வேறு வழிகளில் செயல்படுத்தப்பட முடியும், இந்த கட்டுரையில் உதாரணங்கள் இறுதி மட்டுமே தேர்ந்தெடுக்கும் வகையிலான. எனவே, ஒவ்வொரு வழக்கிலும், நாம் நிரலாக்க மற்றும் குறிப்பிட்ட செயல்படுத்த டெவலப்பர் முற்றிலும் சார்ந்துள்ளது போது கணக்கில் எடுத்துக்கொள்ளப்பட வேண்டும் என்பது தேவைகளுக்கான ஒரு பட்டியலை வழங்க வேண்டும்.
இவ்வாறு, சரியான மின்னஞ்சல் சோதிக்கும் வெளிப்பாடு, பின்வரும் நிபந்தனைகளை சரிபார்க்க வேண்டும்:
- இலிருந்து முன்னிலையில் @ சின்னமாக வரிசையாக, மற்றும் எந்த இடைவெளிகளும் உள்ளன.
- @ குறியீடாக முகவரியின் களத்தில் பகுதியாக, டொமைன் பெயர்கள் மட்டுமே செல்லுபடியாகும் எழுத்துகள் உள்ளன. அதே பயனர் பெயர் பொருந்தும்.
- பயனர்பெயர் சோதனை போது ஒரு மேற்கோளைச் அல்லது செங்குத்து கோடு போன்ற சிறப்பு எழுத்துக்கள் முன்னிலையில் தீர்மானிக்க வேண்டும். இத்தகைய சின்னங்கள் ஆபத்தான உள்ளன மற்றும் SQL ஊசி என்று தாக்குதல்கள் போன்ற வகையான உள்ள முடியும். முகவரிகள் தவிர்க்கவும்.
- பயனீட்டாளர் சரத்தின் முதல் அல்லது கடைசி எழுத்து இருக்கலாம் ஒரே ஒரு கட்டத்தில், அனுமதிக்கும்.
- டொமைன் பெயர் குறைந்தது இரண்டு அல்ல ஆறு க்கும் மேற்பட்ட எழுத்துகள் இருக்க வேண்டும்.
எடுத்துக்காட்டாக, கணக்கில் இந்த அனைத்து நிபந்தனைகளும் எடுத்து பின்வரும் படத்தில் காணலாம்.
ஒரு URL இன் மதிப்பீட்டு
டாஸ்க். குறிப்பிட்ட உரை சரம் ஒரு சரியானதா என்பதை பார்க்கலாம் முகவரியை URL ஐ. மீண்டும், நாங்கள் வழக்கமான வெளிப்பாடுகள் URL ஐ சரிப்பார்த்தலை பல்வேறு வழிகளில் செயல்படுத்தப்பட முடியும் என்பதை நினைவில்.
முடிவு. பின்வருமாறு எங்கள் இறுதி பதிப்பு:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
இப்போது வரைதல் பயன்படுத்தி இன்னும் விரிவாக அதன் கூறுகள் ஆய்வு செய்யும்.
| கூற்றை 1 | URL ஆனது எந்த எழுத்துக்கள் கொண்டிருக்கக் கூடாது முன் |
| கூறுகின்றனர் 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 இலக்கங்களைக் கொண்ட உள்ளது.
- என் - 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