Computer, Zokuhlela
PHP (regex) - ntoni na? Imizekelo yaye kuhlolwe ukuzithso okuqhelekileyo
Xa usebenza Okubhaliweyo naluphi na ulwimi lokuprograma mihla, abaphuhlisi rhoqo ukuhlangabezana neenjongo igalelo ukuqinisekiswa ukuthobela ngokomfuziselo oyifunayo, khangela kwaye endaweni iziqwenga uvavanyo kunye nezinye iintlobo zokulungisa imisebenzi ulwazi ubuntu. Ziqulunqe ubuchule bakho Uqinisekiso kukhokelela ukulahleka kwexesha, le ukuhambelana ikhowudi nokuntsonkotha kuphuhliso yayo maxesha.
Uphuhliso olukhawulezileyo lweelwimi Internet kunye neWeb-design ufune ulwenziwo iindlela ubhetyebhetye kwaye compact processing zombhalo isixa ekwelona nqwanqwa lisezantsi efunekayo ukuze le khowudi. Yiloo nto ngaphandle kwaye idumile phakathi wabaqalayo kunye nababhekisi phambili nobungcali ulwimi PHP. I rhoqo ulwimi ibinzana njengoko templates isicatshulwa lula umsebenzi kokuphatha okubhaliweyo nokunciphisa ikhowudi amashumi kunye amakhulu imida. iingxaki ezininzi ukuba kusonjululwe konke konke ngaphandle kwayo.
Iintetho rhoqo kwi PHP
ulwimi PHP na iindlela ezintathu yokusebenza ukuzithso - «ereg», «mb_ereg» kwaye «preg». Avamise kakhulu elilujongano «preg», imisebenzi kabani Ukubonelela ngokwazi ukufikelela kuzo kwithala leencwadi ze-PCRE inkxaso ibinzana rhoqo, ekuqaleni zenzelwe ezi lwimi Perl, nto leyo ifakiwe kwiphakheji PHP. Preg-abafuna imisebenzi efanayo umtya wokubhaliweyo kunikwa, ngokutsho ipateni ethile ngolwimi amabinzana rhoqo.
Basics syntax
Njengenxalenye inqaku elifutshane akunakwenzeka ukuchaza yonke zezitsho kwezivakalisi ngokweenkcukacha, kuba le nto kukho uncwadi okhethekileyo. Sinikela kuphela izinto eziphambili ukubonisa amathuba umbhekisi phambili kwaye baqonde ikhowudi imizekelo.
In PHP Ukutsho rhoqo ngokusesikweni ichaziwe nzima kakhulu, kwaye ke ngoko lula inkcazo. Ukutsho rhoqo umtya wokubhaliweyo. Siqulathe template umahluli ezingcwele kunye isilungisi ebonisa indlela yokusingatha ngayo. mhlawumbi ifakwe iindlela ezahlukeneyo kunye kophindo lwe iipateni.
Ngokomzekelo, xa becacisa / \ d {3} - \ d {2} - \ d {2} / m nomabi yi "/", kulandele i template, nesimboli «m» lo sokuguqula kancinane.
Zonke amandla amabinzana qho enkhowudwa usebenzisa meta-abalinganiswa. Eyona metacharacter ulwimi yeyona umgca okekeleyo ngasemva - "\". Itshintsha uhlobo zilandelayo abalinganiswa kwi eyahlukileyo (umz. E. iguqulelwa wildcard ubhalo eziqhelekileyo vice versa). Enye metacharacter obalulekileyo umgca othe ngqo «|», ikhankanya i template ezizezinye. imizekelo ezingakumbi meta-Abalinganiswa:
| ^ | Qala into okanye umtya |
| ( | qala subpattern |
| ) | subpattern End |
| { | Qala quantifier |
| } | quantifier End |
| \ d | digit wokugqibela 0 ukuya 9 |
| \ D | umsebenzisi ukuba ayikho inombolo |
| \ s | uphawu engenanto, isithuba, tab, |
| \ w | dictionary uphawu |
PHP, liqhube ukuzithso, indawo ozakuthathwa ngumlinganiswa eyahlukileyo esebenzayo, ngoko amazwi xyz kunye ABC APHO ezahlukileyo.
subpatterns
In PHP subpatterns rhoqo parentheses, yaye maxa wambi ebizwa ngokuba "subexpressions". Yenza le misebenzi ilandelayo:
iindlela Ulwabiwo. Umzekelo, umlinganiselo ubushushu (into | Bird |) ingqamana la magama "ubushushu", "Firebird" yaye "ashushu". Kwaye ngaphandle kwizibiyeli iya kuba kuphela umtrya ongenanto, "intaka" yaye "ashushu".
subpattern "Okumangalisayo". Oku kuthetha ukuba, ukuba ipateni ofanayo umtya osezantsi, ngoko ubuyisela yonke imidlalo. Ecacileyo, sinikela umzekelo. Ngenxa Ukutsho rhoqo zilandelayo: ophumeleleyo ufumana ((igolide | ngegolide engathi ngumfanekiswana) (imbasa | indebe)) - kunye lomtya kwimidlalo, "lowo uphumeleleyo ufumana imbasa yegolide." Ukongeza ibinzana lokuqala, iziphumo zophendlo ziya kukhutshwa: "Molteno Gold", "iimbasa", "igolide".
Abanini kophindo (kvadrifikatory)
Ekuqulunqeni le ntetho yarhoqo kuyimfuneko rhoqo kukuhlalutya phindwa amanani kunye neesimboli. Oku akuyongxaki, ukuba akukho ezininzi kophindo. Kodwa yintoni onokuyenza xa asazi inani labo ngqo? Kule meko kuyimfuneko ukusebenzisa metacharacters ezikhethekileyo.
Ukuze ufumane inkcazelo kophindo kusetyenziswa kvadrifikatory - metacharacters ukuba ukhankanye inani. Kvadrifikatory ezi ndidi mbini:
- eqhelekileyo kwizibiyeli;
- sinciphile.
quantifier Ngokubanzi wachukunyiswa asezantsi nelona nani okuvunyelwe kophindo element ngohlobo amanani amabini kwi braces, ezifana x {2,5}. Ukuba inani lobuninzi kophindo ayaziwa, ingxoxo yesibini alukhankanywanga: x {2}.
quantifiers emfutshane imifanekiso kuba yeyona ixhaphakileyo kophindo ukuze enciphisa sithwalisa syntax. Kukholisa ukuba kubekho amanxeba ezintathu:
1. * - unothi okanye ngaphezulu milembelele, nto leyo ilingana {0,}.
2. + - kophindo omnye okanye ngaphezulu, okt, {1} ...
3.? - zero okanye kuphela omnye phinda - {0.1}.
imizekelo regex
Kuba abo bafunda amabinzana rhoqo, imizekelo - kwincwadi ilungileyo. Thina ezimbalwa ezibonisa amathuba abo ubuncinane umgudu ndoninika. Yonke khowudi isebenzisane ngokupheleleyo ze PHP 4.x nangaphezulu. Ukuze uqonde ngokupheleleyo lwesivakalisi kunye nokusetyenziswa zonke iimpawu zolwimi sincoma incwadi ngu J .. Friedl, "amabinzana rhoqo", leyo ingqalelo ngokupheleleyo isintaksi, kwaye kukho imizekelo amabinzana rhoqo PHP nje kuphela, kodwa ngenxa Python, Perl, I SQL yam, Java, uRuby, kunye C #.
UQinisekiso E-mail address
Task. Kukho iphepha Internet apho undwendwe iyacelwa idilesi ye email. Ukutsho rhoqo kufuneka uhlole ukuchaneka iidilesi phambi kokuthumela imiyalezo. Khangela akuqinisekisi ukuba yeposi echaziweyo okunene likhona kwaye wamkela imiyalezo. Kodwa ukususa iidilesi ngokucacileyo engalunganga kanjani.
Isigqibo. Njengayo nayiphi na ulwimi lokuprograma, e-PHP regex yokuqinisekisa email idilesi-lingaphunyezwa ngeendlela ezahlukeneyo, kwaye imizekelo kweli nqaku asingabo ukhetho lokugqibela kwaye kuphela. Ngoko ke, kwimeko nganye, siya kubonelela uluhlu iimfuno ekufuneka ukuba zithathelwe ingqalelo xa lwenkqubo kunye nokuphunyezwa ethile ixhomekeke ngokupheleleyo umqambi.
Ngoko ke, eli binzana oluvavanya imeyili elungile, kufuneka uhlole le miqathango ilandelayo:
- Ukubakho kule yokuqala agudle uphawu @, yaye akukho zikhewu.
- I domain yinxalenye idilesi uphawu @, iqulathe kuphela kusebenza amagama domain. Kukwasebenza igama lomsebenzisi.
- Xa Khangela igama lomsebenzisi kuyimfuneko ukuqinisekisa ubukho iimpawu ezikhethekileyo ezifana ikhonco okanye umgca nkqo. obunjalo yingozi kwaye okunokuqulathwa ku iindidi ezinjalo zokuhlaselwa ukuba SQL-inaliti. Ziphephe iidilesi.
- abasebenzisi avumele ngenqaku elinye kuphela, ixesha elo ke elingenakuba lomsebenzisi wokuqala okanye wokugqibela ngomtya.
- Igama domain kufuneka iqulathe ubuncinane ezimbini kwaye oonobumba ngaphezu ezintandathu.
Umzekelo, kuthathelwa ingqalelo zonke ezi meko kunokubonwa kulo mzobo ulandelayo.
UkuNgqinisisa URL
Task. Khangela ukuba lo umtya wokubhaliweyo echaziweyo elisebenzayo idilesi URL. Nalapha, siphawula ukuba amabinzana rhoqo URL kwakhona unako ukusebenza ngeendlela ezahlukeneyo.
Isigqibo. version yethu yokugqibela ngolu hlobo lulandelayo:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
Ngoku sihlaziye amacandelo zayo ngokweenkcukacha usebenzisa umzobo.
| isimangalo 1 | Phambi kokuba URL kufuneka abe naziphi iimpawu |
| ibango 2 | Jonga ubukho isimaphambili mandatory «http» |
| into 3 | Kufuneka kubekho imiqondiso |
| ibango 4 | Ukuba kukho «s», amanqaku URL ukuya uxhulumaniso yokugcina «https» |
| ibango 5 | ingxenye ezifunekayo i "//" |
| ibango 6 | akukho ngabo |
| p. 7-9 | Ukuqinisekisa le domain kwinqanaba lokuqala kwaye kukho indawo |
| p.10-13 | Ukuqinisekisa le domain yokubhala kwinqanaba lesibini nencopho |
| p.14-17 | isakhiwo Ifayile URL - iseti amanani, iileta, amanqaku, oodwi, amachaphaza, kunye isleshi ekupheleni |
Khangela amanani ekhadi lokuthenga ngetyala
Task. Kufuneka ukuphumeza Ukuqinisekiswa kwekhadi lekhredithi inani wangena iinkqubo zentlawulo ixhaphakileyo. A uhlobo kuphela amakhadi Visa kunye MasterCard.
Isigqibo. Xa ekudaleni ibinzana kufuneka ukuba uthathe ingqalelo phambi kunokwenzeka kwezikhewu kwigumbi igalelo kulo. Umvo kwimaphu bohlulwa babe ngamaqela ukuze ukufunda kube lula yaye emlonyeni. Ngoko ke, kulindelekile ukuba umntu zama ukufaka inani ngale ndlela (okt. E. Ukusebenzisa izithuba).
Bhala ibinzana iphela ethathela ingqalelo kwizikhewu kunokwenzeka okanye hyphens, inzima ngaphezu nje ulahle bonke oonobumba ngaphandle manharhu. Ngoko ke, sicebisa usebenzisa ibinzana lwewaldi / D, olususa bonke oonobumba ngaphandle manharhu.
Ngoku uyakwazi ukuya ngqo inombolo yokukhangela. Zonke iinkampani, ikhadi lamatyala benkampani usebenzisa ukuma unique number. Kumzekelo isetyenziselwe, yaye akukho mfuneko umxhamli ngenisa igama lenkampani - oko kusenziwa isigqibo ngenani. amakhadi Bonisa njalo aqala amanani-4 kwaye ubude lemivo 13 okanye 16. MasterCard iqala uluhlu 51-55 kunye nenani elide 16. Ngenxa yoko, sifumana amazwi ilandelayo:
Ngaphambi kokuba liqhube oda kube ngakumbi kuvavanywa imivo yokugqibela ngenani, nto leyo ibalwa Luhn algorithm.
Ukuqinisekisa inombolo yefoni
Task. Ukuhlola ukuchaneka inombolo yefowuni wangena.
Isigqibo. Inani lamasuntswana kwi iinombolo zomnxeba esisigxina yaye mobile azifani kakhulu kuxhomekeka lizwe, ngoko ke khangela jikelele, esebenzisa amabinzana rhoqo, inombolo yefowuni ngokuchanekileyo engenakwenzeka. Kodwa amanani yezizwe ngendlela engqongqo yaye ilungele ekuhloleni ipateni. Nangakumbi ukuze abanini ngakumbi yomnxeba yesizwe bazama ukuhlangabezana zomgangatho ofana ncam. isakhiwo Igumbi lumi ngolu hlobo lulandelayo:
+ CCC.NNNNNNNNNNxEEEE, apho:
- C - lelona lizwe ikhowudi equlathe lemivo 1-3.
- N - inani ukuya kutsho kwisi-14.
- E - ulwandiso optional.
Plus iyinto ebalulekileyo, yaye X uphawu ukho kuphela xa kuyimfuneko ukwandiswa.
Ngenxa yoko siya kuba la mazwi alandelayo:
^ \ + [0-9] {1,3 } \ [0-9] {4,14}. (:?. X +)? $
Amanani kuluhlu
Task. Kuyimfuneko ukuqinisekisa kuqondana elipheleleyo uluhlu ethile. Ukongeza, kuyimfuneko ukuba bafumane uluvo lwarhoqo kuphela amanani ukusuka kuluhlu.
Isigqibo. Nazi Ambalwa kwezinye iimeko kwemininzi eqhelekileyo:
| Ukumisela iyure-1 ukuya ku-24 | ^ (1 [0-2] | [1-9]) $ |
| Usuku ngenyanga 1-31 | ^ (3 [01] | [12] [0-9] | [1-9]) $ |
| Imizuzwana okanye imizuzu 0-59 | ^ [1-5] [0-9] $ |
| A inani ukusuka ku-1 ukuya kwi-100 | * (100 |? [1-9] [0-9]) $ |
| Usuku unyaka 1-366 | ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $ |
Ukufuna IP-iidilesi
Task. Kuyimfuneko ukuba kubonwe ukuba ngaba umtya onikiweyo a IP-idilesi esebenzayo kwifomati IPv4 kuluhlu ukususela 000.000.000.000-255.255.255.255.
Isigqibo. Njengoko nawuphi na ingxaki ngolwimi PHP, ibinzana rhoqo okuninzi varintov. Umzekelo, oku:
yokutshekisha Online amabinzana
Khangela regex ngokuchanekileyo kwabasaqalayo kunokuba nzima ngenxa yobunzima lwesivakalisi, eyahluke ukusuka kwiilwimi "rhoqo" kweenkqubo. Ukusombulula le ngxaki, kukho ezininzi abahloli online amabinzana ezenza kube lula ukujonga ukuchaneka template oyenzileyo kwi kwisicatshulwa yokwenene. Uhlelo engena ibinzana nokungqinisisa idatha ubone nangoko result processing. Kudla kukho ninikele icandelo reference, leyo iinkcukacha amabinzana rhoqo, imizekelo neeyantlukwano yomiliselo kwezi lwimi kakhulu elide.
Kodwa kwiinkonzo sithembele ngokupheleleyo online iziphumo akukhuthazwa ukuba bonke ababhekisi phambili abasebenzisa PHP. Ukutsho rhoqo ebhalwe zaqinisekiswa umntu, uphakamisa qualification kwaye akuqinisekisi ukungabikho yeempazamo.
Similar articles
Trending Now