OrdenagailuakProgramazioa

PHP (regex) - zer da? Adibideak eta adierazpen erregular egiaztapena

Edozein programazio hizkuntza modernoetan testu lan egitean, sustatzaile etengabe sarrera baliozkotzea helburuak lortu nahi den eredua betetzeko betetzen, bilatu eta proba zatiak eta beste pertsonaia Informazio eragiketak prozesatzeko mota ordezkatzeko. Egin zure balidazioa algoritmoak garatzea, denbora galtzea, kode bateragarritasuna eta konplexutasuna bere garapen eta modernizazio ere dakar.

Internet eta web-diseinua hizkuntzen garapen azkarra testua prozesatzeko bitartez polifazetikoa eta trinkoa sortzea eskatzen kode hau egiteko beharrezkoa den gutxieneko zenbatekoa batekin. ez da salbuespena, eta herri-hasiberri eta PHP hizkuntza garatu profesionala artean dago. Adierazpen erregular Testuan templates gisa testua manipulazioa lana errazteko eta kode murrizteko hamarnaka eta lerro ehunka. orokorrean arazo asko ezin dira hori gabe konpondu.

PHP adierazpen erregularren

PHP hizkuntza hiru mekanismo ditu adierazpen erregular lantzeko - «ereg», «mb_ereg» eta «preg». Ohikoena interfaze «preg», zeinen funtzioak PCRE adierazpen erregularra laguntza, jatorriz Perl hizkuntza, hau da PHP pakete sartuta garatu liburutegi sarbidea ematen da. Preg-bila eman testu-kate bat datorren batean funtzioak, adierazpen erregular hizkuntzan eredu jakin baten arabera.

sintaxia oinarriak

Artikulu labur baten parte bezala, ezinezkoa da zehatz-mehatz deskribatzeko espresio erregularrei osoan, horretarako dago literatura berezi bat da. elementu bakarra nagusian aurkezten dugu sustatzailearen aukerak erakusteko eta kodea adibide ulertzeko.

PHP adierazpen erregular formalki definitzen da oso zaila, eta, beraz, azalpena errazteko. Adierazpen erregular bat testu katea da. osatzen bat dedikatu banatzailea template eta aldatzailea modu hura kudeatzeko adieraziz ditu. hainbat alternatiba eta errepikapen ereduak posible sartzea.

Adibidez, adierazpen hasi / \ d {3} - \ d {2} - \ d {2} / m banantzeko da "/", plantilla jarraian, eta sinbolo «m» modifikatzailea da.

adierazpen erregular boterea guztia kodetuta meta-pertsonaiak erabiliz. "\" - Hizkuntza metacharacter nagusia backslash da. kontrako karaktereak ondoko mota aldatzen du (hau. E. arrunt bat komodin eta alderantziz bihurtuta). Beste metacharacter garrantzitsua da lerro zuzen bat «|», txantiloi alternatiba zehazten ditu. meta-karaktere adibide gehiago:

^ Hasi objektu edo kate bat
( Hasi azpiereduaren
) amaiera azpiereduaren
{ start zenbatzaile
} amaiera zenbatzaile
\ d 0tik 9ra digituko hamartar
\ D Edozein pertsonaia hori ez da zenbaki bat
\ s sinbolo hutsak, espazioa, fitxa,
\ w Ikur hiztegia

PHP, espresio erregular, espazio baliozko pertsonaia bereizi bat bezala hartzen du, beraz, XYZ eta ABC adierazpena WHERE desberdinak dira prozesatzean.

azpiereduk

PHP erregular azpiereduk parentesi moduan ere, eta batzuetan deitzen dira "patroia". Burutu funtzioak:

  1. Esleipena alternatibak. Adibidez, bero-eredua (zerbait | Bird |) hitzak "bero" dator, "Firebird" eta "beroa". Eta parentesi gabe bakarrik izango da kate huts bat, "txori" eta "beroa" izan.

  2. "Ikusgarria" azpiereduaren. Horrek esan nahi du ereduarekin bat datorren bada azpikate, gero partidetan itzultzen du. Argitasuna, adibide bat emango dugu. Emandako honako adierazpen erregularra: irabazlea jasotzen ((urrea | urrezko) (domina | kopa)) -, eta partiduak katea, "irabazlea urrezko domina bat lortzen." Hasierako Esaldi gain, bilaketa-emaitzak emango dira: "Urrezko Domina", "domina", "urrea".

Operadore errepikapen (kvadrifikatory)

adierazpen erregularra konpilatzean izan ohi da beharrezkoa zenbakiak eta sinboloak errepikapena aztertzeko. Hau ez da arazo bat, ez bada errepikapen asko. Baina zer denean ez dakigu haien kopuru zehatza egin? Kasu honetan beharrezkoa da metacharacters bereziak erabili.

metacharacters kopurua zehaztu - erabiltzen kvadrifikatory errepikapen deskribapena da. Kvadrifikatory bi motatakoak dira:

  • Parentesi arteko bateratuak;
  • murriztu.

zenbatzaile Oro har ukitu onartzen errepikapen elementu kopuru minimoa eta maximoa giltza bi zenbakiak, esaterako x {2,5} bezala formularioa arabera. errepikapen kopurua gehienez ez da ezaguna bada, bigarren argumentua ez dago zehaztuta: x {2}.

Laburtua zenbatzaile gehien errepikapen komun aldeko ikurrak Ordena alferrikako gainkarga sintaxia saihesteko daude. Normalean badira hiru mozketak:

1. * - zero edo gehiago errepikapen, hau da {0} baliokidea.

2. + - errepikapen bat edo gehiago, hau da, {1} ...

3.? - zero edo bat bakarrik errepikatu - {0,1}.

Adibideak regex

testuliburua onena - espresio erregular, adibideak ikasten dutenentzat. gutxi batzuk euren aukerak erakusten duten ahalegin gutxieneko batekin ematen diogu. kode guztiek erabat PHP 4.x eta gainetik bertsio bateragarria da. Guztiz ulertzeko sintaxia eta erabilera J .. Friedl, "adierazpen erregular", eta horrek erabat jotzen sintaxia liburua gomendatzen dugu hizkuntza ezaugarri guztiak, eta ez dira ohiko adierazpenak PHP ez bakarrik, baina baita Python bat, Perl, MySQL, Java, Ruby, eta C # adibideak.

Validation E-posta helbidea

Ataza. Ez dago Interneteko orri horren gainean bisitariak e-posta helbide eskatu da. Espresio erregularra helbideak zuzentasuna egiaztatu beharko mezuak bidali aurretik. Check ez du bermatzen zehaztutako postontzi benetan existitzen dela eta letrak jasotzen. Baina sasiak out helbideak jakina, oker, ahal.

Erabakia. Edozein programazio hizkuntza bezala, PHP regex email-address egiaztapen modu ezberdinetan ezarri daiteke, eta artikulu honetan adibide ez direla azken eta bakarra aukeratu. Hori dela eta, kasu bakoitzean, kontuan hartu behar denean, programazio eta ezartzeko zehatz araberakoa erabat sustatzailearen on eskakizun zerrenda eman beharko dugu.

Horrela, adierazpena baliozko e-posta bat frogatzen duen, baldintza hauek egiaztatu behar ditu:

  1. hasierako presentzia lerro @ ikurra, eta badira hutsuneak ez.
  2. Domain ikurra @ ostean helbidea parte, domeinu-izenak baliozko karaktereak soilik ditu. Gauza bera gertatzen da erabiltzailearen izena aplikatzen.
  3. Noiz erabiltzaile izena egiaztapena beharrezkoa da karaktere bereziak presentzia zehazteko, besteak beste, apostrofoa edo lerro bertikal gisa. Horrelako ikurrak arriskutsuak dira eta SQL injekzio eraso mota, hala nola jasotako daiteke. Saihestu helbideak.
  4. Erabiltzaile izen puntu bakarra, eta horrek agian ez katean lehen edo azken pertsonaia izan baimentzeko.
  5. domeinu-izenak gutxienez bi eta ez sei karaktere baino gehiago eduki behar.

Adibidea, kontuan hartuta, baldintza horiek guztiak izango dira ondoko irudian ikus daiteke.

URL baten balidazioa

Ataza. Check zehaztutako testu-kate ala baliozko bat da helbide URL. Berriro ere, kontutan izan dugu adierazpen erregular URL-egiaztapena hori hainbat modutan ezarri daiteke.

Erabakia. Gure azken bertsioan honako hau da:

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

Orain aztertu bere osagai xehetasun gehiago marrazkia erabiliz.

erreklamazioa 1 Aurretik URL ez luke inolako karaktere izan
Erreklamazio 2 Check derrigorrezko aurrizkiaren presentzia «http»
elementua 3 ikurrak ez dago izan behar
Erreklamazio 4 Bada han «s», URL seguru konexio bat puntu «https»
Erreklamazio 5 Beharrezko zatia "//"
Erreklamazio 6 Ez dago karaktere
p. 7-9 egiaztatzen lehen mailako domeinua eta puntu presentzia
p.10-13 Bigarren mailan eta puntua idazten domeinua egiaztatzea
p.14-17

File egitura URL - zenbakiak, letrak, azpimarra, marrak, puntuak multzo bat, eta amaieran, barra

Check kreditu txartel zenbakiak

Ataza. sartu kreditu txartelaren ordainketa ohikoena sistemak kopurua baliozkotzeko ezartzeko behar duzu. Aldaera A-txartelak soilik Visa eta MasterCard.

Erabakia. adierazpena sortzean kontuan posible hutsuneak presentzia hartu sarrerako gelan behar duzu. Mapan digituak taldetan banatzen dira irakurketa eta diktaketa errazagoa da. Beraz, normala da pertsona bat zenbaki bat sartzeko modu horretan (hau. E. espazioak erabiltzea) dastatzeko.

kontuan hartzen ahalik espazio edo marratxoak adierazpen unibertsala bat idatzi, zailagoa da baino besterik karaktere guztiak baztertuko digituak ezik. Beraz, komodina adierazpen / D, zein karaktere guztiak kentzen digituak ezik erabiltzea gomendatzen da.

Orain zuzenean joan ahal izango duzu check zenbakira. Enpresa guztiak, kreditu txartel jaulkitzaile zenbakia formatuan berezia erabili. Adibide gisa erabiltzen da, eta bezeroak ez du zertan enpresaren izena sartzeko - da kopuruaren arabera zehaztuko da. Visa txartelak beti zenbakiak 4 hasten da eta 13 edo 16 digitu luzera izan. MasterCard 51-55 sorta kopurua luzea 16. Ondorioz batekin hasten da, honako adierazpena lortuko dugu:

ordena prozesatzeko aurretik gehiago probatu ahal izango dira kopurua, hau da Luhn algoritmoa kalkulatu azkeneko digituak.

Telefono zenbakia egiaztatzen

Ataza. sartu telefono zenbaki zuzentasuna egiaztatzen.

Erabakia. finkoa eta mugikorra, telefono zenbakietan digitu kopurua aldatu egiten dira nabarmen herrialdearen arabera, beraz unibertsal egiaztatu espresio erregularra, telefono zenbakia behar bezala ezinezkoa erabiliz. Baina nazioarteko zenbakiak formatuan zorrotza eta perfektua eredua egiaztatzen dute. Are gehiago, nazio mailako telefono operadore gero eta gehiago direla estandar bera bete nahian. Room egitura honako hau da:

+ CCC.NNNNNNNNNNxEEEE, non:

- C - lurralde kode 1-3 digituak osatua da.

- N - kopurua 14 zifrako up.

- E - aukerako luzapena.

Plus ezinbesteko osagaia da, eta kartel X gaur beharrezkoa denean bakarrik luzapena da.

Ondorioz honako adierazpen hauek ditugu:

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

zenbakiak sorta The

Ataza. Beharrezkoa da kasualitatea sorta jakin bateko zenbaki oso bermatzeko. Horrez gain, beharrezkoa da adierazpen erregular bat bakarrik sorta batetik zenbakiak aurkitzeko.

Erabakia. Hona hemen kasu ohikoena batzuk esamolde batzuk:

Zehaztu ordu 1etik 24ra ^ (1 [0-2] | [1-9]) $
Hilaren 1-31 egun ^ (3 [01] | [12] [0-9] | [1-9]) $
Segundo edo minutu 0-59 ^ [1-5]? [0-9] $
1 eta 100 arteko zenbakia da * (100 |? [1-9] [0-9]) $
Urte 1-366 Eguna ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Search IP-helbideak

Ataza. Beharrezkoa da, kate jakin batean ala baliozko IP helbide bat IPv4 formatuan 000.000.000.000-255.255.255.255 batetik barrutia da zehazteko.

Erabakia. PHP hizkuntzan arazorik bezala, adierazpen erregular varintov asko ditu. Adibidez, hau:

Online adierazpen egiaztapena

Check regex behar bezala hasiberri zaila izan daiteke delako sintaxia konplexutasuna, eta horrek "erregular" programazio hizkuntzetan desberdina. Arazo hau konpontzeko, askok online probatzaile dela erraza plantilla benetako testu sortutako zuzentasuna egiaztatu ahal esamoldeak daude. Programatzailea adierazpen eta egiaztapen datuak sartzen eta berehala prozesatzeko emaitza ikusi. Normalean ez da erreferentzia atal bat, zein adierazpen erregular, adibideak eta ezartzeko desberdintasunak xehetasunak hizkuntza gehienetan hedatua aurkezten.

Baina guztiz konfiantza online zerbitzuetara emaitzak ez PHP erabiltzen duten garatzaileentzako guztiak gomendatzen da. Adierazpen erregular bat idatzi eta pertsonan egiaztatu, sailkatuek altxatzen eta akatsik ez egotea bermatu.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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