KombiyuutaradaBarnaamijyada

PHP (regex) - waa maxay? Tusaale ahaan iyo hubinta tibaaxaha joogto ah

Marka la text in kasta oo afka barnaamijyo casri ah oo shaqo, horumarinta si joogto ah ula kulmaan ujeeddooyinka ansaxinta aqbasho waayo waafaqsan qaabka la doonayo, baadhidooda iyo bedelo jajabkii imtixaanka iyo noocyada kale ee hawlaha ka baaraandegidda macluumaadka qof. In la sameeyo algorithms ansaxinta adiga kuu gaar ah u keenaysaa in khasaaraha of time, waafaqid code iyo kakanaanta ee dhinaca horumarinta iyo casriyeynta.

horumarinta degdegga ah ee luqadaha Internet iyo WEB-design loo baahan yahay abuurista hab boosaska badan oo is haysta ee processing text xaddiga ugu yar ee looga baahan yahay code this. Waxaa waa laga reebo lahayn oo ka mid ah bilowga ah iyo horumarinta xirfadeed ee luqadda PHP caan ah. The luqadda hadal joogto ah sida arrimo qoraalka si ay u fududeeyaan hawsha qabashada qoraalka iyo in la yareeyo code tobannaan iyo boqolaal ka mid ah khadadka. dhibaatooyin badan oo aan lagu xallin karaa oo dhan waxa aan.

Weer joogta ah PHP

luqadda PHP waxay leedahay saddex qaab la tibaaxaha joogto ah shaqeeya - «Ereg», «mb_ereg» iyo «preg». The ugu caansan waa interface «preg», kuwaas oo hawlaha bixiyaan helitaanka maktabadda ee PCRE taageero hadal caadiga ah, asal ahaan loogu talagalay af Perl ah, kaas oo la mid ah in xirmo PHP ah. hawlaha ku habboon qoraalka string siiyey Preg-doonaya, sidii qaabkii ah oo Afka tibaaxaha joogto ah.

Aasaaska Saan

Iyadoo qayb ka ah article gaaban waa wax aan macquul aheyn in lagu qeexo si faahfaahsan oo dhan Saan ka hadal joogto ah, waayo, taasu jirto suugaanta gaar ah. Waxaana u bandhigaynaa kaliya canaasiirta ugu weyn si ay u muujiyaan fursadaha sameeysa oo fahmaan tusaalooyin xeerka.

In PHP hadal joogto ah waxaa si rasmi ah u qeexay mid aad u adag, oo sidaas daraaddeed fududeeyo tilmaanta. hadal A joogto ah waa string qoraal ah. Waxay ka kooban tahay template ah SEPARATOR quduuska iyo HABEEYAHA tilmaamaya jidka loo qaban. ka mid noqoshada macquulka ah ee kala duwan iyo kusoo celin ah qaababka.

Tusaale ahaan, in ra'yi dhiibashada / \ d {3} - \ d {2} - \ d {2} / m qaybiye waa "/", raaceen by template ah, iyo calaamad «m» waa HABEEYAHA ah.

xoogga tibaaxaha joogto ah oo dhan waa la encoded isticmaalaya Meta-characters. The metacharacter ugu weyn ee luqada waa istillaab ku - "\". Waxaa badala nooca socda characters on horjeeda (ie. E. beddelay ah xulashada qof caadi ah iyo qeybsanaan ku xigeenka). metacharacter kale oo muhiim ah waa toosan line «|», ku qoran template kale. tusaalooyin dheeraad ah oo Meta-characters:

^ Bilow shay ama xarig ah
( Bilow subpattern
) subpattern End
{ Start quantifier
} quantifier End
\ d lambar tobanle ka bilaabmaysa 0 ilaa 9
\ D qof kasta oo ma aha tiro
\ s Astaanta madhan, meel, tab,
\ w astaanta dictionary

PHP, ka baaraandegidda tibaaxaha joogto ah, meel loo arkaa sida qof sax ah oo kala duwan, sidaas muujinta XYZ iyo ABC XAGGEE way kala duwan yihiin.

subpatterns

In PHP subpatterns caadiga ah by parentheses, oo ay mararka qaarkood loo yaqaan "subexpressions". Fuliyo hawlahan soo socda:

  1. beddeli Qoondaynta. Tusaale ahaan, hannaanka kulaylka (wax | Bird |) ku beegan tahay erayada "kulaylka" ah, "Firebird" iyo "kulul". Oo aan ku dhxe ee waxa ay noqon doontaa kaliya string madhan, "shimbir" iyo "kulul".

  2. "Cajiib ah" subpattern. Taas macnaheedu waa in haddii hannaanka kulan substring, ka dibna soo laabtay oo dhan kulan. Waayo, Hufnaan, waxaan ku siin tusaale. Marka la eego hadal soo socda si joogta ah: guusha uu helo ((dahab | dahab plated) (bilad | koob)) - oo xarig ah, waayo, kulan, "guusha uu helo bilada dahabka ah." Waxa intaa dheer in weedha hore, natiijooyinka raadinta la soo saari doonaa: "Gold Bilad", "biladood", "dahabka".

Wadayaasha aaminin (kvadrifikatory)

In ururinayaan hadal caadiga ah inta badan waxaa lagama maarmaan ah si ay u falanqeeyaan celceliyay tirada iyo calaamadaha. Tani maaha wax dhibaato ah, haddii aan wax badan oo aaminin. Laakiin waxa la sameeyo marka garan mayno tiradooda rasmiga ah? Xaaladdan oo kale waxaa lagama maarmaan ah in la isticmaalo metacharacters gaar ah.

Waayo, sharaxaad ku saabsan Ilaah aaminin yeelaan isticmaalo kvadrifikatory - metacharacters inaad sheeg tirada. Kvadrifikatory waxaa ka mid ah laba nooc:

  • caadiga ah ee ku dhxe,
  • dhimay.

quantifier Guud ahaan taabtay by tirada ugu yar iyo ugu badnaan ee loo ogol yahay aaminin element foomka laba tiro ee biraha ah, sida x {2,5}. Haddii tirada ugu badan ee Ilaah aaminin yeelaan lama yaqaan, dood labaad aan la cayimay mid kastaba: x {2}.

quantifiers soo gaabiyo waa calaamado ee ugu badan ee Ilaah aaminin yeelaan si looga fogaado Saan soo raray si aan loo baahnayn. Sida caadiga ah waxaa jira saddex jeexan:

1. * - eber ama in ka badan Ilaah aaminin yeelaan, taas oo u dhiganta {0,}.

2. + - mid ka mid ah ama ka badan Ilaah aaminin yeelaan, ie, {1} ...

3.? - eber ama kaliya hal kulan ku celis - {0,1}.

Tusaalooyinka regex

Waayo, kuwa bartaan tibaaxaha joogto ah, tusaalooyin - buugaagta ugu wanaagsan. Waxaan ku siin wax yar oo muujinaya fursado ay ugu yaraan ka mid ah dadaal. code oo dhan si buuxda u socon kara versions of 4.x PHP iyo wixii ka sareeya. Si aad si fiican u fahamto Saan iyo isticmaalka dhammaan qaababka luqadda waxaan ku talinaynaa buugga by J .. Friedl, "tibaaxaha joogto ah", taas oo si buuxda loo arko Saan, oo waxaa jira tusaalooyin tibaaxaha joogto ah ma aha oo kaliya PHP, laakiin sidoo kale lagu tukan ah, Perl, MySQL, Java, Ruby, iyo C #.

Ansaxinta E-mail address

Task. Waxaa jira bogga Internet ah on taas oo booqdaha la codsaday cinwaanka email. hadal joogto ah waa in loo hubiyo saxnimada cinwaanada hor farriin ka dirayno. Check ma aha ballanqaad in boostada lagu qeexay dhab jirta iyo helo farriimo. Laakiin gacan bir ah cinwaanada cad u dulmiya karaankeeda.

Go'aan. Sida luqada barnaamij kasta, in PHP regex xaqiijinta email-cinwaanka la fulin karaa siyaabo kala duwan, iyo tusaalooyin ee qodobkan ma aha doorashada ugu dambaysaa oo kaliya. Sidaa darteed, kiis kasta, waxaan ku siin doonaa liiska shuruudaha loo baahan yahay in la tixgeliyo marka barnaamijyadooda iyo hirgelinta gaar ah oo gebi ahaanba ku xiran tahay sameeysa ah.

Sayidka, ra'yi ah in u ku imtixaamaa email sax ah, waa in aad u hubiso shuruudaha soo socda:

  1. Joogitaanka ku bilaabatay si saf calaamad @ ah, iyo ka jiraan firaaqo ma.
  2. qayb domain ee cinwaanka calaamad @ ah, waxaa ku jira oo keliya characters ansax ah ee magacyada domain. Isla sidaas u dhaqmaan magaca user ee.
  3. Marka hubinta username ee loo baahan yahay si loo ogaado jiritaanka characters gaar ah sida hamso ama line taagan. calaamadaha noocan oo kale ah waa khatar ah iyo in la qoran karaa cayn sida weerarro in SQL-duro. Iska ilaali cinwaanada.
  4. usernames ogolaan hal dhibic oo kaliya, taas oo laga yaabaa in aanay qof ee ugu horeeya ama ugu dambeeyey ee string ah.
  5. Magaca domain waa in ay ku jiraan ugu yaraan laba iyo in aan ka badnayn lix characters.

Tusaale, iyada oo la tixgelinayo dhamaan xaaladahaan oo dhan waxaa lagu arki karaa in tirada soo socota.

Ansaxinta ee URL a

Task. Hubi in string qoraalka ku cad yahay oo sax ah URL cinwaanka. Mar labaad, waxaan la soco in tibaaxaha joogto ah URL-jeegga la fulin karaa siyaabo kala duwan.

Go'aan. Our version final waa sida soo socota:

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

Haddaba falanqaynta qaybaha ay faahfaahin dheeraad ah oo isticmaalaya sawirka.

codsigaaga 1 Ka hor inta URL waa in aan qabto wax characters
Claim 2 Hubi joogitaanka horgalaha khasab «http»
item 3 Waa inay jiraan calaamado lahayn
Claim 4 Haddii ay jiraan «s», dhibcood URL si xiriir ah xaqiijisatay ah «https»
Claim 5 qaybtii loo baahan yahay oo ka mid ah "//"
Claim 6 No characters
7-9 p. Hubinta ah domain heer ugu horeysay oo ay goobjoog ka ahaayeen dhibic
p.10-13 Hubinta domain ee qoraal heerka labaad iyo barta
p.14-17

URL-dhismeedka File - go'an lambarada, warqado, ayaa hoosta ka xariiqaysa, kusiga, dhibco, iyo xarriiq dhammaadka

Hubi tirada credit card

Task. Waxaad u baahan tahay si ay u fuliyaan qiimaynta tirada galay credit card oo ka mid ah hababka lacag bixinta ugu badan. duwanaansho A oo keliya, waayo, kaararka Visa iyo MasterCard.

Go'aan. Marka la abuurayo hadal aad u baahan tahay inay tixgeliyaan jiritaanka suurto galka ah ee ka dhimman qolka talooyin ah. lambar The on map ka kala qaybsan yihiin kooxo akhriska fudud iyo yeerin. Sidaa darteed, waa wax caadi ah in qof isku dayi kartaa in ay galaan tiro ka mid ah sidan (ie. E. Isticmaalka goobaha).

Qor hadal caalami ah in la tixgelinayo ku Toostaan ama hyphens, waa ka adag yihiin si fudud u tuur oo dhan characters, marka laga reebo lambar. Sidaa darteed, waxaannu ku talinaynaa adigoo isticmaalaya a hadal / D xulashada, taasoo meesha ka saaraysa oo dhan characters, marka laga reebo lambar.

Hadda waxaad si toos ah tiro jeegga tegi karo. shirkadaha oo dhan, kuwa soo saara kaarka deynta isticmaalaan qaab tiro gaar ah. In tusaale ahaan waxa loogu adeegsaday, iyo macmiilku uma baahna in ay galaan magaca shirkadda - waxaa lagu go'aamiyaa tirada. kaararka Visa marwalba ku bilow tirooyinka 4 oo ay leeyihiin dherer ah 13 ama 16 lambar. MasterCard bilaabmaa kala duwan ee 51-55 tirada dheer 16. Sidaas darteed, waxaan aad u hesho ra'yi soo socda:

Ka hor inta adeegsadaan habsocodyada amarka la sii baari karaa lambar ugu dambeeya ee tirada, oo waxaa loo xisaabiyaa on geynta Luhn ah.

Hubinta lambarka telefoonka

Task. Hubinta saxnimada lambarka taleefanka soo galay.

Go'aan. Tirada lambar ee lambarada telefoonada go'an iyo mobile kala duwan la taaban karo taas oo ku xidhan dalka, si loo hubiyo guud oo adeegsanaya joogto ah, phone number si sax ah wax aan macquul aheyn. Laakiin tirada caalami ah ay leeyihiin qaab adag oo kaamil ah hubinta hannaanka. Xitaa ka sii badan in ka shaqeeya iyo aad u badan telefoonka qaranka oo isku dayaya in ay gaarsiisan yihiin heerka la mid ah. Qaab dhismeedka Room waa sida soo socota:

+ CCC.NNNNNNNNNNxEEEE, halkaas oo:

- C - waa code dalka oo ka kooban 1-3 lambar.

- N - tiro ilaa 14 lambar.

- E - kordhin optional.

Plus waa element lagama maarmaan ah, iyo calaamad X waa la joogo oo keliya marka loo baahan yahay kordhinta.

Sidaas darteed waxaan leenahay hadal soo socda:

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

lambarada ee kala duwan ee

Task. Waxaa lagama maarmaan ah si loo hubiyo in abyoonaha kadis ah kala duwan oo gaar ah. Intaa waxaa dheer, waxaa lagama maarmaan ah in la helo hadal joogto ah tirada oo keliya ka duwan.

Go'aan. Halkan waxaa ku qoran dhowr tibaaxaha in qaar ka mid ah kiisaska ugu badan:

Go'aaminta saac laga bilaabo 1 ilaa 24 ^ (1 [0-2] | [1-9]) $
Maalinta bisha 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Ilbidhiqsiyo ama daqiiqado 0-59 ^ [1-5]? [0-9] $
Tiro ka 1 100 * (100 |? [1-9] [0-9]) $
Maalinta sano 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Search IP-cinwaanada

Task. Waxaa lagama maarmaan ah in la ogaado in string ah la siiyo waa sax IP-address qaab IPv4 kala duwan ka soo 000.000.000.000-255.255.255.255.

Go'aan. Sida wax dhibaato ah Afka PHP, hadal caadiga ah waxa uu leeyahay badan oo varintov. Tusaale ahaan, tan:

jeegga Online tibaaxaha

Hubi regex si sax ah bilowga noqon kartaa wax adag sababta oo ah caqabadaha Saan ah, taas oo ka luqadaha barnaamijyada "joogtada ah" kala duwan. Si loo xalliyo dhibaatada this, waxaa jira kara tijaabiyeyaal online badan tibaaxaha in si fudud in lagu hubiyo saxnimada template aad u abuuray in qoraalka dhabta ah. barnaamijyada soo gashay xogta qowlka iyo xaqiijinta iyo isla arko natiijada nidaaminta. Sida caadiga ah waxaa jira bandhigaan qaybta tixraaca ah, taasoo faahfaahiso ee tibaaxaha joogto ah, tusaalooyin iyo khilaafaadka fulinta ee luqadaha ugu dheereeyey.

Laakiin adeegyada online si buuxda trust natiijooyinka aan lagula talinayaa dhammaan horumarinta isticmaala PHP. hadal A joogto ah, waxaa qoran, laguna caddeeyey in qof, oo kor u soo baxdo isla markaasna dammaanad qaadayaa maqnaanshaha qaladaad.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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