MakombiyutaZvirongwa

PHP (regex) - chii? Mienzaniso uye vachiongorora dzose mashoko

Kana tichishanda ndima chero ano zvirongwa mutauro, Developers kuramba kusangana zvinangwa chiyamuro chivimbo chakasimba kuti zvaidiwa kutsvakwa muenzaniso, tsvakai uye kutsiva bvunzo nezvimedu uye dzimwe mhando processing kushanda unhu mashoko. Iva chivimbo chakasimba pachako algorithms yenyu inotungamirira kurasikirwa nguva, bumbiro remitemo kugarisana uye kunzwisisa waro kukura uye mazuvaano.

Kukurumidza kukura Indaneti uye WEB-magadzirirwo mitauro waiti kusikwa ichiita mabasa akawanda, uye chiine nzira chinyorwa kubudiswa pamwe risingamboshandisi mari yaidikanwa bumbiro iri. Hapana Kunze uye akakurumbira pakati beginners uye Developers nyanzvi yomutauro PHP. Dzose okuti mutauro sezvo chinyorwa templates kurerutsa basa nayo rugwaro uye kuderedza bumbiro nokuda vemakumi uye mazana nemitsetse. Matambudziko akawanda haagoni kugadziriswa zvachose pasina izvozvo.

Kugara Expressions PHP

mutauro PHP ane nzira nhatu kuti kushanda nguva mashoko - «ereg», «mb_ereg» uye «preg». Rakajairika ndiyo inowanikwa «preg», vane mabasa zvinopa kuwana muraibhurari yacho PCRE dzose okuti rutsigiro, pakutanga yakatanga nokuda mutauro Perl, riri kushandiswa PHP pasuru. Preg-kutsvaka mabasa ari kupiwa rugwaro tambo enzanirana, maererano mumwe muenzaniso mumutauro dzose mashoko.

nemarongerwo Basics

Sezvo chikamu pfupi nyaya hazvibviri hunonyatsodonongodza yose dzose okuti nemarongerwo, nokuti ichi pane mabhuku anokosha. Ratinoparidza chete huru zvinhu kuratidza mikana yokuvaka uye kunzwisisa bumbiro mienzaniso.

In PHP nguva mashoko ari pamutemo kunotsanangurwa zvakaoma chaizvo, uye saka hureruke nerondedzero. Kugara mashoko ane chinyorwa tambo. Inoitwa akazvitsaurira separator template uye modifier inotaridza nzira kubata nayo. Possible kuwanikwa muzvinyorwa siyana inotsiva uye repetitions kuti mapatani.

Somuenzaniso, mune mashoko / \ D {3} - \ D {2} - \ D {2} / m mugoveri ndiye "/", uchiteverwa template, uye chiratidzo «M» ndiye modifier.

All simba dzose mashoko ari encoded uchishandisa Meta-vatambi. The chikuru mutauro metacharacter ndiye backslash - "\". It anochinja mhando anotevera vatambi pakatarisana (kureva. E. anotendeuka kuva munhuwo hunhu wildcard ndiEzekieri). Chimwe metacharacter chinokosha achirurama mutsetse «|», rinoti zvingaitwa template. More mienzaniso Meta-kutaurwa:

^ Tanga chinhu kana tambo
( Tanga subpattern
) End subpattern
{ Start quantifier
} End quantifier
\ c grade digit kubva 0 kusvika 9
\ D chero hunhu kuti haisi nhamba
\ s chinhu chiratidzo, nzvimbo, Tab,
\ W chiratidzo duramazwi

PHP, processing dzose mashoko, nzvimbo sechinhu siyanei kushanda hunhu, saka kutaura xyz uye ABC KUPI zvakasiyana.

subpatterns

In PHP dzose subpatterns kubudikidza muzvikomberedzo, uye dzimwe nguva anonzi "subexpressions". Kuita zvinotevera mabasa:

  1. Yavaive zvinotsiva. Somuenzaniso, kupisa muenzaniso (chinhu | Bird |) rinobatana nemashoko "kupisa", "Firebird" uye "inopisa". Uye pasina mumabhuraketi zvichaita chete kuva chinhu tambo, "shiri" uye "inopisa".

  2. "Zvinoshamisa" subpattern. Izvi zvinoreva kuti kana muenzaniso vachiwirirana substring, ipapo anodzoka machisi zvose. Kuti zvijeke, tinopa muenzaniso. Kupiwa zvinotevera dzose okuti: Kumukundi anogamuchira ((goridhe | goridhe kuifukidza) (menduru | mukombe)) - uye tambo kuti machisi, "Kumukundi awana menduru yegoridhe." Kuwedzera kwokutanga wokuti, kutsvaka zvabuda achapiwa rakapa: "Gold menduru", "Medals", "ndarama".

Operators repetitions (kvadrifikatory)

In rokunyora dzose okuti Kazhinji zvakakosha kuongorora kudzokororwa kwenhamba uye zviratidzo. Iyi haisi dambudziko, kana kwete yakawanda repetitions. Asi zvokuita kana hatizivi nhamba yavo chaiyo? Muchiitiko ichi zvakakosha kushandisa metacharacters.

Nokuti tsanangudzo repetitions vaishandisa kvadrifikatory - metacharacters kuti kutaridzwa nhamba. Kvadrifikatory muri mhando mbiri:

  • nevakawanda mumabhuraketi;
  • ipfupi.

Kunopindirana quantifier mwoyo shoma uye kunonyanyisa uwandu akabvumira repetitions chinhu muchimiro nhamba mbiri dziri kufamba ndakaisa simbi mumakumbo, akadai X {2,5}. Kana kunonyanyisa nhamba repetitions Hazvizivikanwi, wechipiri nharo kusingajekeswi: x {2}.

Rakapfupikiswa quantifiers zviratidzo nokuda inonyanya zvinowanzovapo repetitions kuti ichengetedzwe overloading nemarongerwo. Kazhinji kune maronda matatu:

1. * - razero kana kupfuura repetitions, inova yakaenzana {0,}.

2. + - mumwe kana kupfuura repetitions, kureva, {1} ...

3.? - razero kana chete wodzokorora - {0,1}.

mienzaniso regex

Nokuti vaya vanodzidza dzose mashoko, mienzaniso - yakanakisisa bhuku. Tinopa mashomanana kuti anoratidza mikana yavo kushoma nesimba. Bumbiro All inowirirana zvakazara shanduro PHP 4.x uye pamusoro. Kuti kunyatsonzwisisa nemarongerwo uye kushandiswa mutauro zvose zvinhu tinoratidza bhuku rakanyorwa J .. Friedl, "nguva dzose okuti", izvo zvakazara vaiona nemarongerwo, uye pane mienzaniso dzose mashoko kwete chete PHP, asiwo kuti Python, Perl, MySQL, Java, Ruby, uye C #.

Chivimbo chakasimba E-mail

Task. Kune Internet peji iri iyo mushanyi ari akakumbira kero mail. Kugara mashoko anofanira kumisa yakarurama yekero vasati nokutuma mashoko. Check hakuvimbisi kuti yakanatsa mailbox ariko chaizvo uye anogamuchira mashoko. Asi Anosakurawo panze pachena kuipa kero kunogona.

Decision. Kungofanana mutauro zvirongwa, muna PHP regex e-kero ongororo anogona chinozoiswa nenzira dzakasiyana, uye mienzaniso munyaya ino havasi kokupedzisira uye chete sarudzo. Saka, muna nechimwe, isu ichapa mazita zvinodiwa kuti zvinoda kufungwa kana zvirongwa uye yakananga Implementation kunoenderana zvachose pamusoro yokuvaka.

Saka, mashoko okuti kuti anoedza ane chikonzero email, vanofanira kuongorora zvinotevera ezvinhu:

  1. Kuvapo mu pokutangira anomira @ chiratidzo, uye hakuna maburi.
  2. Umambo Chikamu Kero @ chiratidzo, rine chete dzinoshanda vatambi kuti Domain mazita. Izvi zvinoshandawo zita rokushandisa.
  3. Kana kuongorora Username zvakafanira kuona pamberi dzinokosha vatambi akadai ane apositurofi kana wehunyambiri mutsetse. zviratidzo zvakadaro nengozi uye kunogona huri marudzi kurwisa kuti SQL-jekiseni kwakadaro. Dzivisa kero.
  4. usernames kubvumira chete nguva imwe, izvo ingasava wokutanga kana rokupedzisira hunhu mune tambo.
  5. inotongwa zita The vanofanira ane zviviri uye kwete kupfuura matanhatu vatambi.

Muenzaniso, kufungisisa zvose izvi zvinhu zvinogona kuonekwa zvinotevera nhamba.

Chivimbo chakasimba ane URL

Task. Check kana yakanatsa chinyorwa tambo kune musoro kero URL. Kamwe zvakare, tinoona kuti nguva dzose mashoko URL-kuongorora zvinogona chinozoiswa nenzira dzakasiyana-siyana.

Decision. Our chokupedzisira shanduro ndiyo sezvinotevera:

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

Zvino ongorora yenhengo dzayo muudzame kushandisa mufananidzo.

murandu 1 Pamberi URL haafaniri kuva chero vanotaurwa
murandu 2 Check kuvapo fanira chivakashure «http:»
chinhu 3 Hapafaniri kuva zviratidzo
murandu 4 Kana «S», URL kunongedzera yakasimbiswa kubatana «https»
murandu 5 Zvaida chikamu "//"
murandu 6 No vanotaurwa
p. 7-9 Kuongorora kuti wokutanga chechetere achazoburuka uye kuvapo pfungwa
p.10-13 Kuongorora umambo kunyora wechipiri sandara uye pfungwa
p.14-17

File mamiriro URL - chine nhamba, tsamba, chinosimbisa, dashes, Dots, uye yokutema miti pakupera

Ongorora kadhi nhamba

Task. Unofanira kushandisa chivimbo chakasimba pamusoro vakapinda kadhi nhamba inonyanya mubhadharo enyika. A musiyano wezvinyorwa chete makadhi Visa uye Mastercard.

Decision. Paaisika mashoko aunofanira kufungawo zvaibvira pamberi Makwanza mune mazano mukamuri. The digits pamepu vanokamurwa muzvikwata nokuda nyore kuverenga uye dhikitesheni. Naizvozvo, chitori chibarirwo kuti munhu anogona kuedza kupinda nhamba nenzira iyi (kureva. E. Kushandisa dzezvimwe).

Nyora pasi rose mashoko kuti anofunga zvinobvira dzezvimwe kana hyphens, ndiko kuoma kukunda kuti kurirasa vatambi zvose kunze digits. Saka, tinoratidza achishandisa wildcard okuti / D, iyo inobvisa vatambi zvose kunze digits.

Zvino unogona kuenda zvakananga cheki nhamba. Makambani All, kadhi issuers vanoshandisa rakasiyana nhamba format. Ari muenzaniso unoshandiswa, uye nemhosva haafaniri kupinda zita boka - zvikaonekwa nenhamba. Visa Makadhi nguva dzose kutanga nhamba 4 uye vane kureba 13 kana 16 digits. Mastercard kunotangira kuwanda 51-55 ane refu nhamba 16. Somugumisiro, tinowana zvinotevera okuti:

Asati processing hurongwa inogona akaedzazve okupedzisira digits ari nhamba, iro rinowanikwa pamusoro Luhn algorithm.

Kuongorora nhamba dzorunhare

Task. Pakuongorora yakarurama pamusoro akapinda nhamba dzorunhare.

Decision. Kuwanda digits iri nhamba dzorunhare yakatarwa uye Mobile zvinosiyana zvikuru zvichienderana nyika, saka kwose tarisa kushandisa nguva mashoko, nhamba dzorunhare namazvo hazviiti. Asi dzakawanda nhamba vane zvachose Manyorerwo uye akakwana kuongorora muenzaniso. Kunyange zvakawanda zvekuti zvakawanda National runhare dzaishandisa vari kuedza kusangana chete mureza. Room mamiriro iri sezvinotevera:

+ CCC.NNNNNNNNNNxEEEE, apo:

- C - ndiyo nyika bumbiro zvinosanganisira 1-3 digits.

- N - nhamba kusvika 14 digits.

- E - hako chiwedzerwa.

Plus chinhu chinokosha maatomu akafanana, uye chiratidzo X aripo chete kana zvichidiwa chiwedzerwa.

Somugumisiro tine zvinotevera okuti:

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

The zviverengo kuwanda

Task. Zvakakodzera nechokwadi madimbu integer imwe kwaasingasvikiri. Uyezve, zvinokosha kuwana nguva dzose mashoko chete nhamba kubva siyana.

Decision. Hedzino zvishoma mashoko kune vamwe rakajairika kacho:

Sarudza awa kubva 1 kusvika 24 ^ (1 [0-2] | [1-9]) $
Day mumwedzi 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Masekondi kana maminitsi 0-59 ^ [1-5]? [0-9] $
A nhamba kubva 1 100 * (100 |? [1-9] [0-9]) $
Zuva gore 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Search IP-kero

Task. Zvakakosha kuziva kana kupiwa tambo kune musoro IP-kero IPv4 pamanyorerwo iri zvinobva 000.000.000.000-255.255.255.255.

Decision. Kungofanana dambudziko mumutauro PHP, nguva dzose mashoko ane zhinji varintov. Somuenzaniso, izvi:

Online kuongorora mashoko

Ongorora regex zvakarurama nokuda beginners kunogona kuva kwakaoma nokuda kunzwisisa kwakaita nemarongerwo, iyo rinosiyana "nguva" zvirongwa mitauro. Kuti vagadzirise dambudziko iri, kune vakawanda paIndaneti testers mashoko zvinoita nyore kuona yakarurama pamusoro template iwe vakasikwa chaiye murugwaro. The programmer anopinda okuti uye ongororo Data uye pakarepo kuona mugumisiro kubudiswa. Kazhinji pane kupa Munongedzo chikamu, izvo vaiudzwa dzose mashoko, mienzaniso uye Implementation kusiyana nokuda zvikuru zvivharwe mitauro.

Asi kuti zvakazara chivimbo mabasa paIndaneti zvawanikwa kwete pachii Developers vose vanoshandisa PHP. Kugara mashoko akanyorwa uye zvinosimbiswa ari munhu, anomutsa zvinodiwa uye pave kusavapo zvikanganiso.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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