AmakhompyuthaIzinhlelo

PHP (Regex) - kuyini? Izibonelo kanye kokuhlola izinkulumo njalo

Lapho besebenza ngombhalo kunoma yiluphi ulimi izinhlelo yesimanje, onjiniyela njalo ukuhlangabezana nezinjongo ukuqinisekiswa yokufaka kuhambisana iphethini oyifunayo, ukucinga bese ushintsha test izingcezwana nezinye izinhlobo ekucubunguleni imisebenzi yolwazi uhlamvu. Thuthukisa ngelakho ukuqinisekiswa algorithm kuholela nokulahlekelwa isikhathi, ikhodi kwedivayisi nokuba yinkimbinkimbi ekuthuthukisweni yayo kanye sesimanje.

Ukuthuthukiswa okusheshayo Internet kanye WEB-design izilimi edingekayo ukudalwa izindlela okudingeka bashintshashintshe ngayo futhi compact nombhalo processing ngemadlana enele le khodi. Kuyinto ayihlukile neze futhi ivamile phakathi Wabasaqalayo Konjiniyela PHP ulimi. I njalo Inkulumo yolimi njengoba izifanekiso umbhalo ukuze senze lula umsebenzi wokusingatha umbhalo bese ukunciphisa ikhodi amashumi namakhulu lemigqa. Izinkinga eziningi akakwazi ingaxazululwa nhlobo ngaphandle kwalo.

Izinkulumo njalo PHP

PHP ulimi has izindlela ezintathu ngokusebenzisana izinkulumo njalo - «ereg», «mb_ereg» futhi «preg». Okuvame kakhulu isibonisi «preg», ogama imisebenzi ukunikeza ukufinyelela umtapo we PCRE ejwayelekile ukwesekwa, ekuqaleni ulimi Perl, okuyinto likhona iphakethe PHP. Preg-efuna imisebenzi enikeziwe umbhalo string ofanayo, ngokuvumelana ukulandela indlela ethile yokuma ngolimi eboniswa njalo.

Izisekelo-syntax

Njengengxenye isihloko iDemo akunakwenzeka ukuchaza ngokuningiliziwe yonke njalo inkulumo-syntax, ngoba lokhu kukhona izincwadi ekhethekile. Sethula izakhi eziyinhloko kuphela ukukhombisa amathuba kunjiniyela nokuqonda izibonelo ikhodi.

Ngo PHP ejwayelekile ngokomthetho kuchazwe nzima kakhulu, ngakho-ke lula incazelo. Inkulumo ejwayelekile yezinhlamvu zombhalo. Siqukethe ozinikele isihlukanisi isifanekiso kanye lwewashi ekhombisa indlela ukubhekana naso. ukufakwa Kunokwenzeka izindlela ezihlukahlukene kanye ezinikezwa lwamaphethini.

Ngokwesibonelo, e Inkulumo / \ d {3} - \ d {2} - \ d {2} / m ehlukanisayo kuyinto "/", kulandele isifanekiso, futhi uphawu «m» iyona lwewashi.

Zonke amandla izinkulumo njalo ifakwe ikhodi kusetshenziswa meta-izinhlamvu. The main ulimi metacharacter iyona udwi - "\". It sishintsha uhlobo elandelayo ebalingisi okuphambene (isb. E. Ishintshwe ibe abavamile uhlamvu isikhethi kanye noHezekeli). Enye metacharacter okubalulekile iqonde umugqa «|», icacisa isifanekiso okunye. izibonelo ezengeziwe meta-zinhlamvu:

^ Qala into noma yezinhlamvu
( Qala subpattern
) Ukuphela subpattern
{ Qala Umphelelisi
} Ukuphela Umphelelisi
\ d idijithi wedesimali kusuka 0 kuya 9
\ D yimuphi uhlamvu ukuthi akuyona inombolo
\ s uphawu ezingenalutho, isikhala, ithebhu,
\ w uphawu isichazamazwi

PHP, ekucubunguleni izinkulumo njalo, isikhala kubhekwe njengokuphila ebonakala ehlukile elivumelekile, ngakho amazwi XYZ futhi ABC LAPHO zihlukile.

subpatterns

Ngo PHP subpatterns njalo abakaki, futhi ngezinye izikhathi ibizwa ngokuthi "subexpressions". Yenza imisebenzi elandelayo:

  1. Ukwabiwa izindlela. Ngokwesibonelo, iphethini ukushisa (into | Bird |) kuvumelana amazwi "ukushisa", "Firebird" futhi "hot". Futhi ngaphandle kubakaki kuyoba umucu ongenalutho, "inyoni" futhi "hot".

  2. "Okumangalisayo" subpattern. Lokhu kusho ukuthi uma indlela yokulibiza ifaniswe olungaphansi ke ibuyisela konke ukufana. Ngokucaca, sikunikeza isibonelo. Banikezwe Inkulumo elandelayo njalo: winner ithola ((igolide | steel) (indondo | inkomishi)) - kanye string okufanayo, "winner uthola wendondo yegolide." Ngaphezu ibinzana kokuqala, imiphumela yosesho okuzokhishwa: "Gold Medal", "izindondo" nelithi "igolide".

Opharetha ezinikezwa (kvadrifikatory)

Ngo kwekuhlanganisa ejwayelekile Ngokuvamile kuye kudingeke uhlaziye ukuphindaphinda izinombolo kanye nezimpawu. Lena akuyona inkinga, uma kungekhona eziningi ezinikezwa. Kodwa yini okufanele uyenze lapho asazi inombolo yabo ngqo? Kulokhu-ke kubalulekile ukusebenzisa metacharacters ekhethekile.

Ukuze uthole incazelo eningiliziwe ezinikezwa esetshenziswa kvadrifikatory - metacharacters ucacise inombolo. Kvadrifikatory kukhona ezimbili zama:

  • ezivamile kubakaki;
  • encishisiwe.

Umphelelisi sekukonke wathinta ngenani ubuncane kanti esiphezulu elivunyelwe ezinikezwa isici ngesimo izinombolo ezimbili kule besokunxele, ezifana x {2,5}. Uma inombolo enkulu ezinikezwa alwaziwa, i-agumenti yesibili ayicacisiwe: x {2}.

quantifiers esifushanisiwe kukhona izimpawu ezivamile ezinikezwa ukuze ugweme ezingadingekile nokulayishwa-syntax. Ngokuvamile Kukhona ukusikeka ezintathu:

1. * - zero noma ngaphezulu ezinikezwa, okulingana {0,}.

2. + - eyodwa noma ngaphezulu ezinikezwa, okungukuthi, {1} ...

3.? - zero noma eyodwa kuphela uphinda - {0.1}.

izibonelo Regex

Kulabo ukufunda izinkulumo njalo, izibonelo - ebhukwinitifundvo engcono. Sinikeza ezimbalwa ezibonisa amathuba abo nge ngomzamo omncane kakhulu. Zonke ikhodi kuyahambisana ngokugcwele izinguqulo PHP 4.x nangaphezulu. Ukuze ukuqonde ngokwengeziwe syntax nokusetshenziswa kwalo lonke izici ulimi sincoma incwadi nge-J .. Friedl, "izinkulumo njalo", okuyinto kubhekwa ngokugcwele miyalelo, futhi kunezibonelo eboniswa njalo PHP hhayi kuphela, kodwa futhi ukuba Python, i-Perl, MySQL, Java, Ruby, futhi C #.

ikheli Ukuqinisekisa E-mail

Umsebenti. Kukhona page Inthanethi lapho isivakashi iyadingeka ikheli le-imeyili. Izengezo ezivamile Kumele uhlole ngokunemba amakheli ngaphambi ukuthumela imilayezo. Hlola akuqinisekisi ukuthi ibhokisi lemeyili ecacisiwe empeleni ukhona futhi ithola imiyalezo. Kodwa Zikhipha amakheli ngokusobala okungalungile can.

Isinqumo. Njenganoma iyiphi ulimi lokwakha izinhlelo, e PHP Regex ukuqinisekiswa kwe-imeyili-ikheli ezingase zithathwe ngezindlela ezahlukene, kanye nezibonelo kulesi sihloko akuzona ukukhetha sokugcina futhi kuphela. Ngakho-ke, esimweni ngasinye, siyakuphila ukunikeza uhlu lwezimfanelo ezidinga kunakwe lapho uHlelo kanye nokuqaliswa ethize lithembela ngokuphelele unjiniyela.

Ngakho, inkulumo ethi ukuthi ukuhlolwa i-imeyili evumelekile, kufanele uhlole kwale mibandela elandelayo:

  1. Ukuba khona e starting agudle uphawu @, futhi azikho izikhala.
  2. Ingxenye esizindeni sekheli of the symbol @, linezinhlamvu kuphela ezivumelekile amagama domain. Kuyefana nasendleleni igama yomsebenzisi.
  3. Lapho ehlola igama lomsebenzisi kuyadingeka ukuze sithole khona izinhlamvu ezikhethekile ezifana ngesimeliluhlamvu noma umugqa mpo. izimpawu ezinjalo yingozi futhi kungenziwa eziqukethwe izinhlobo ezinjalo ukuhlaselwa ukuthi SQL-umjovo. Gwema amakheli.
  4. Amagama omsebenzisi e-ukuvumela iphuzu elilodwa kuphela, ekungafanele kube uhlamvu lokuqala noma isibongo kule yunithi yezinhlamvu.
  5. Igama lesizinda kufanele okungenani ibe ezimbili hhayi izinhlamvu ezingaphezu kuka eziyisithupha.

Isibonelo, ukuthatha zonke lezi izimo ku-akhawunti kungabonakala sibalo elandelayo.

Ukuqinisekisa kwe-URL

Umsebenti. Hlola ukuthi ecacisiwe umbhalo string kuyinto esivumelekile URL ikheli. Nakulokhu futhi, siphawula ukuthi izinkulumo njalo URL ukuhlolwa kungenziwa lwenteke ngezindlela ezihlukahlukene.

Isinqumo. okufushane sethu sokugcina simiswe ngalendlela lelandzelako:

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

Manje sihlaziye izingxenye zalo kabanzi ngokusebenzisa umdwebo.

isimangalo 1 Ngaphambi URL akufanele ube izinhlamvu
Isimangalo 2 Hlola khona isiqalo saziso «http»
nto 3 Akumele kube khona izimpawu
Isimangalo 4 Uma kukhona «s», amaphuzu e-URL ku ukuxhumana okuphephile «https»
Isimangalo 5 ingxenye adingekayo we "//"
Isimangalo 6 Azikho izinhlamvu
k. 7-9 Iqinisekisa domain esezingeni lokuqala futhi khona iphuzu
p.10-13 Iqinisekisa esizindeni ngokubhala ezingeni lesibili kanye iphuzu
p.14-17

isakhiwo Ifayela URL - iqoqo nezinamba, izinhlamvu, ama-underscore, amadeshi amachashazi, bese slash ekupheleni

Hlola izithombe zamakhadi wesikweletu

Umsebenti. Udinga nokuqalisa ukuqinisekiswa we langena inombolo yekhadi lesikweletu izinhlelo ezivamile lokukhokha. A okufana kuphela amakhadi Visa kanye MasterCard.

Isinqumo. Lapho edala inkulumo udinga acabangele khona okungenzeka izikhala egumbini input. Izinombolo kumephu zihlukaniswe amaqembu ukuze ulifunde kulula futhi ezitholwe. Ngakho-ke, kungokwemvelo ukuthi umuntu ungazama ukufaka inombolo ngale ndlela (isb. E. Ukusebenzisa izikhala).

Bhala inkulumo jikelele ukuthi uyakucabangela izikhala kungenzeka noma amahayifeni, iyinkimbinkimbi kakhulu kunalokho kokumane ukulahla zonke izinhlamvu ngaphandle amadijithi. Ngakho-ke, sincoma ukusebenzisa isikhethi Inkulumo / D, okususa zonke izinhlamvu ngaphandle amadijithi.

Manje ungaya ngqo inombolo isheke. Zonke izinkampani, issuers credit card usebenzise ifomethi yenombolo esiyingqayizivele. Kusibonelo isetshenziswa, futhi iklayenti ayidingi ukungena igama lenkampani - it is kunqunywa inani. Visa amakhadi njalo uqale nge izinombolo 4 futhi abe obuphelele kwamadijithi 13 noma 16. MasterCard iqala ibanga 51-55 ngenombolo eside 16 Ngenxa yalokho, sithola inkulumo elandelayo:

Ngaphambi kokucubungula kungachazwa kwavivinywa amadijithi lokugcina inombolo, okuyinto ibalwa Luhn algorithm.

Iqinisekisa inombolo yakho yefoni

Umsebenti. Ihlola ngokunemba efakiwe inombolo yefoni.

Isinqumo. Inombolo yamadijithi e egxilile futhi mobile Izinombolo zocingo ziyahlukahluka kakhulu kuye ngezimo zezwe ngalinye, ngakho emhlabeni hlola usebenzisa izengezo ezivamile, inombolo yocingo kahle engenakwenzeka. Kodwa izinombolo zamazwe omhlaba jikelele abe ifomethi esiqinile futhi ephelele ekubhekeni iphethini. Ngisho ngaphezulu ukuze ezingasho kazwelonke yocingo opharetha ozama ukuhlangabezana endinganisweni efanayo. isakhiwo Igumbi simiswe ngalendlela lelandzelako:

+ CCC.NNNNNNNNNNxEEEE, lapho:

- C - kuyinto ikhodi yezwe ehlanganisa kwamadijithi 1-3.

- N - inombolo kuze kube amadijithi 14.

- E - isandiso ozikhethela.

Plus liyisici ezibalulekile, kanye X uphawu likhona kuphela lapho kudingeka isandiso.

Ngenxa yalokho esinabo inkulumo ethi ezilandelayo:

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

Izinombolo ububanzi

Umsebenti. Kuyadingeka ukuqinisekisa ukuqondana kwezinto inamba sobubanzi ezithile. Ngaphezu kwalokho, kubalulekile ukuthola ejwayelekile kuphela izinombolo kusuka ebangeni.

Isinqumo. Nazi izinkulumo ezimbalwa amanye amacala ezivamile:

Nquma ihora kusuka 1 kuya 24 ^ (1 [0-2] | [1-9]) $
Usuku enyangeni 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Imizuzwana noma imizuzu 0-59 ^ [1-5]? [0-9] $
Inani kusuka 1 kuya 100 * (100 |? [1-9] [0-9]) $
Usuku ngonyaka 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Ukucinga IP amakheli

Umsebenti. Kuyadingeka ukuba inqume ukuthi yezinhlamvu enikeziwe elivumelekile IP-le-IPv4 yokwakheka basukela 000.000.000.000-255.255.255.255.

Isinqumo. Njenganoma iyiphi inkinga ngolimi PHP, inkulumo ethi njalo inezinto eziningi varintov. Isibonelo, lokhu:

Online kokuhlola wokuboniswa

Hlola Regex kahle Wabasaqalayo kungaba nzima ngenxa yokuba yinkimbinkimbi miyalelo, okuyinto sihlukile 'njalo "izilimi izinhlelo. Ukuze uxazulule le nkinga, kukhona abahloli inthanethi eziningi izinkulumo enza kube lula ukuhlola ngokunemba isifanekiso wena wadala embhalweni yangempela. UMklami engena imizwa kanye yokuqinisekisa idatha kanye kweso ukubona umphumela ukucutshungulwa. Ngokuvamile kukhona ukwethula isigaba incwadi ethile, ebonisa sicacisa izinkulumo njalo, izibonelo kanye nokuqaliswa umehluko kulezi zilimi enwetshiwe kakhulu.

Kodwa kumasevisi ithemba ngokugcwele inthanethi imiphumela hhayi Kunconywa bonke onjiniyela abasebenzisa PHP. Inkulumo ejwayelekile kulotshiwe futhi iqinisekisiwe umuntu, kuphakamisa ziqu kanye isiqinisekiso ukungabi khona amaphutha.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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