KwamfutocinShirye-shirye

PHP (regex) - abin da yake da shi? Misalai da dubawa na yau da kullum maganganu

Lokacin aiki tare da rubutu a cikin kowane zamani shirye-shirye da harshen, developers kullum hadu da manufofin shigar Ingancin for yarda da so juna, bincika da kuma maye gurbin gwajin da wani ɓaɓɓake da sauran iri sarrafa yadda ake gudanar da harafin bayanai. Ci gaba naka Ingancin Algorithms take kaiwa zuwa asarar lokaci, da code karfinsu da wuya a ci gaba da kuma na zamani.

A m ci gaba da Internet da kuma WEB-zane harsuna bukata halittar m, kuma m hanyar rubutu aiki tare da m adadin da ake buƙata domin wannan code. Shi ne ba togiya da yake mashahuri a cikin sabon shiga da kuma sana'a developers na PHP harshe. A magana na yau da harshe a matsayin rubutu shaci ya rage wuya da aiki na da tanadin da rubutu da kuma rage code for dubun, kuma daruruwan Lines. Mutane da yawa da matsaloli ba za a iya warware a duk ba tare da shi.

Regular maganganu a PHP

PHP harshe yana da uku sunadaran don aiki tare da na yau da kullum maganganu - «ereg», «mb_ereg» da kuma «preg». Mafi na kowa ne ke dubawa «preg», wanda ayyuka samar da damar yin amfani da] akunan karatun na PCRE magana na yau da goyan baya, asali ɓullo da ga Perl harshe, wanda aka kunshe a cikin PHP kunshin. Preg-neman ayyuka a wani ba rubutu kirtani daidai da, a cewar wani wasu juna a cikin harshen yau da kullum maganganu.

cakude Basics

Kamar yadda wani ɓangare na wani gajeren labarin ba shi yiwuwa a bayyana a cikin daki-daki, ga dukan magana na yau da ginin kalma, domin wannan akwai musamman wallafe-wallafe. Mun gabatar da kawai da babban abubuwa nuna dama ga developer da kuma fahimtar code misalai.

A PHP magana na yau da aka ƙa'ida tsare da wuya sosai, sabili da haka ya rage wuya da bayanin. A magana na yau da yake a rubutu kirtani. Ya ƙunshi wani kwazo SEPARATOR template da modifier nuna hanya zuwa rike da shi. Zai yiwu hada a cikin daban-daban zabi da kuma maimaitawar na alamu.

Alal misali, a cikin magana / \ d {3} - \ d {2} - \ d {2} / m divider ne "/", bi da samfuri, kuma da alama «m» ne Mai sauya.

Duk da ikon na yau da kullum maganganu da aka shigar wanda ke aiki ta amfani da meta-haruffa. Babban harshen metacharacter ne backslash - "\". Ya canza da irin wadannan haruffa a kan m (watau. E. tuba a cikin wani talakawa hali wildcard da kuma mataimakin versa). Wani muhimmin metacharacter ne a mike layin «|», qayyade madadin template. More misalai na meta-haruffa:

^ Fara abu ko wani layi
( fara subpattern
) karshen subpattern
{ Fara quantifier
} karshen quantifier
\ d gidan goma lambobi daga 0 zuwa 9
\ D wani hali da ba a yawan
\ s komai alama ce, da sarari, tab,
\ w alama ce ƙamus

PHP, sarrafa yau da kullum maganganu, sarari dauke a matsayin mai raba inganci hali, don haka da magana daga XYZ da ABC INA ne daban-daban.

subpatterns

A PHP yau da kullum subpatterns da parentheses, kuma wani lokaci ana kiransu "subexpressions". Yi da wadannan ayyuka:

  1. Kasafi zabi. Alal misali, zafi juna (wani abu | Bird |) yayi daidai da kalmomin "zafi", "Firebird" da "zafi". Kuma ba tare da baka da shi za kawai zama fanko kirtani, "tsuntsu" da "zafi".

  2. "M" subpattern. Wannan yana nufin cewa idan da juna dace substring, sa'an nan ya koma duk ashana. Domin tsabta, mun ba da misali. Ba da wadannan magana na yau da: lashe na'am ((zinariya | zinariya plated) (lambar | kofin)) - da kuma kirtani kirtani ashana, "lashe samun wani ya samu lambar zinariya." Bugu da kari ga na farko jumlar, sakamakon binciken da za a bayar: "mindar zinariya", "lambar yabo", "zinariya".

Aiki ta maimaitawar (kvadrifikatory)

A Tattara bayanan da magana na yau da yake sau da yawa zama dole don nazarin maimaitawa na lambobi da kuma alamomin. Wannan ba wani matsala, idan ba mai yawa ta maimaitawar. Amma abin da ya yi a lokacin da ba mu san su daidai yawan? A wannan yanayin wajibi ne a yi amfani da musamman metacharacters.

Ga bayanin irin ta maimaitawar amfani kvadrifikatory - metacharacters to saka da lambar. Kvadrifikatory ne na iri biyu:

  • kowa cikin baka.
  • rage.

Overall quantifier shãfe ta m da kuma iyakar adadin yarda maimaitawar kashi a cikin nau'i na biyu lambobi a cikin Katakon, kamar x {2,5}. Idan matsakaicin yawan maimaitawar ba a sani, na biyu hujjarsu ne ba a kayyade ba: x {2}.

Rage tsawon quantifiers ne alamomin da ya fi kowa na ta maimaitawar domin kauce wa ba dole ba overloading cakude. Yawancin lokaci akwai uku cuts:

1. * - sifili ko fiye maimaitawar, wanda yake daidai {0,}.

2. + - daya ko fiye maimaitawar, watau, {1} ...

3.? - sifili ko daya kawai sake - {0,1}.

misalai regex

Ga waɗanda suka koyi yau da kullum maganganu, misalai - mafi kyau littafi. Mu ba 'yan cewa nuna su damar da wani m na kokarin. All code shi ne cikakken jituwa tare da versions na PHP 4.x da ke sama. Don cikakken gane ginin kalma da kuma yadda ake amfani da duk harshen siffofin da muka bayar da shawarar da littafin da J .. Friedl, "yau da kullum maganganu", wanda cikakken dauke ginin kalma, da kuma akwai misalai na yau da kullum maganganu ba kawai PHP, amma kuma ga wani Python, Perl, MySQL, Java, Ruby, da kuma C #.

Ingancin E-mail address

Task. Akwai sigar Intanit shafi na a kan abin da baƙo da aka nema adireshin email. Magana na yau da dole ne a duba daidaitar da adiresoshin kafin aika saƙonni. Duba bai da garantin cewa kayyade akwatin gidan waya a zahiri akwai kuma sami sakonni. Amma sako daga fili ba daidai ba adireshin shi iya.

Rarrabẽwa. Kamar yadda da wani shirye-shirye da harshen, a PHP regex imel-imel tabbaci za a iya aiwatar a hanyoyi daban-daban, da kuma misalai a cikin wannan labarin ne ba da karshe kuma kawai zabi. Saboda haka, a kowane hali, za mu samar da wani jerin bukatun da bukatar da za a dauka a asusun a lokacin shirye-shirye da kuma takamaiman aiwatar dogara ne a kan developer.

Saboda haka, magana cewa gwaje-gwaje imel mai inganci, ya kamata a duba wadannan yanayi:

  1. A gaban a cikin farawa layi da @ alama ce, da kuma babu gibba.
  2. A yankin ɓangare na adireshin da @ alama ce, da ya ƙunshi kawai inganci haruffa ga yankin sunayen. Haka ya shafi mai amfani da sunan.
  3. Lokacin da dubawa da sunan mai amfani shi ne zama dole domin sanin gaban harufa na musamman a irin wannan matsayin ain ko a tsaye line. Irin wannan alamomin su ne yiwuwar hatsari da za a iya dauke a cikin irin wannan nau'i na kai hare-hare da SQL-allura. Guji adiresoshin.
  4. sunayen masu amfani da damar daya kawai batu, wanda bazai da farko ko karshe hali a cikin kirtani.
  5. A domain name dole ne dauke da akalla biyu da kuma ba fiye da shida haruffa.

Misali, shan la'akari dukkan wadannan yanayi za a iya gani a cikin wadannan adadi.

Ingancin na wani URL

Task. Duba ko kayyade rubutu kirtani ne mai aiki adireshin URL. Har yanzu, mu lura cewa yau da kullum maganganu URL-dubawa za a iya aiwatar a hanyoyi daban-daban.

Rarrabẽwa. Our karshe version ne kamar haka:

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

Yanzu bincika da aka gyara a more daki-daki ta amfani da zane.

da'awar 1 Kafin URL kamata ba da wani haruffa
da'awa 2 Duba gaban m prefix «http»
abu 3 Akwai dole ne wani Alamun
da'awa 4 Idan akwai «s», da URL maki zuwa kulla dangane «https»
da'awa 5 Ake bukata rabo daga "//"
da'awa 6 babu haruffa
p. 7-9 Ana tantance da farko matakin yankin da kuma gaban batu
p.10-13 Ana tantance kan yankin na rubutu na biyu matakin da ma'ana
p.14-17

Fayil tsarin URL - a sa na lambobi, haruffa, Nazari, dashes, dige, da kuma wani maƙalutu a karshen

Duba katin bashi lambobin

Task. Kana bukatar ka yi Ingancin na shiga katin bashi dama daga cikin mafi kowa biya tsarin. A bambance-bambancen kawai ga katunan Visa da MasterCard.

Rarrabẽwa. A lokacin da samar da magana, kana bukatar ka yi la'akari da yiwu gaban gibba a shigar da dakin. A lambobi a kan taswira kasu kashi kungiyoyin for sauki karatu da karantawa. Saboda haka, shi ne na halitta abin da mutum zai iya yi kokarin shigar da lambar a wannan hanya (watau. E. Amfani da sarari).

Rubuta a duniya magana cewa daukan la'akari da yiwu sarari ko hyphens, shi ne mafi rikitarwa fiye da kawai jefar da duk haruffa fãce lambobi. Saboda haka, muna bayar da shawarar yin amfani da wata wildcard magana / D, wanda ya kawar da duk haruffa fãce lambobi.

Yanzu za ka iya tafi kai tsaye zuwa ga rajistan shiga lambar. All kamfanonin, katin bashi issuers amfani da wani farɗan mai yawan format. A misali shi ne amfani, da kuma abokin ciniki ba ya bukatar shigar da sunan kamfanin - shi ne m da lambar. Visa katunan ko da yaushe za a fara da lambobi 4, kuma suna da tsawon na 13 ko 16 lambobi. MasterCard zai fara a cikin kewayon 51-55 tare da wani dogon lambar 16. A sakamakon haka, muna samun da wadannan magana:

Kafin sarrafa abin da oda za a iya kara gwada karshe lambobi na lamba, wanda aka lasafta a kan Luhn algorithm.

Ana tantance lambar waya

Task. Dubawa da gyara da shiga lambar waya.

Rarrabẽwa. Yawan lambobi a cikin gyarawa da kuma mobile tarho lambobin bambanta da yawa dangane da kasar, don haka duk fāɗin duniya duba yin amfani na yau da kullum maganganu, lambar waya daidai ba zai yiwu ba. Amma na kasa da kasa lambobin da m format da kuma cikakke ga dubawa da juna. Ma fiye da haka da cewa mafi kuma mafi kasa tarho aiki na kokarin saduwa da wannan tuta. Room tsari ne kamar haka:

+ CCC.NNNNNNNNNNxEEEE, inda:

- C - shi ne kasar code kunshi 1-3 lambobi.

- N - yawan up to 14 lambobi.

- E - tilas tsawo.

Plus ne ba makawa kashi, da kuma alamar X ne ba kawai a lokacin da ake bukata tsawo.

A sakamakon da muke da wadannan magana:

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

The lambobin a cikin kewayon

Task. Wajibi ne a tabbatar da daidaituwa lamba na wani fanni. Bugu da kari, wajibi ne a sami wani magana na yau da kawai da lambobi daga cikin kewayon.

Rarrabẽwa. Ga 'yan maganganu da wasu daga cikin na kowa lokuta:

Ƙayyade hour daga 1 zuwa 24 ^ (1 [0-2] | [1-9]) $
Rana a cikin watan 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Seconds ko minti 0-59 ^ [1-5]? [0-9] $
A lamba daga 1 zuwa 100 * (100 |? [1-9] [0-9]) $
Rãnar shekara 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Search IP-adiresoshin

Task. Wajibi ne a ƙayyade ko wani da aka ba kirtani ne mai aiki IP-address a IPv4 format a cikin kewayon daga 000.000.000.000-255.255.255.255.

Rarrabẽwa. Kamar yadda da wani matsala a cikin harshen PHP, da magana na yau da yana da yawa varintov. Alal misali, wannan:

Online dubawa na maganganu

Duba regex daidai ga sabon shiga na iya zama da wuya saboda haduwar da ginin kalma, wanda ya bambanta daga "na yau da kullum" da shirye-shirye da harsuna. Don warware wannan matsala, akwai mutane da yawa online testers maganganu da cewa yin shi da sauki duba correctness na template da ka halitta a cikin real rubutu. A shirye-shiryen shiga cikin magana da kuma tabbaci data da kuma nan take ganin sakamakon da aiki. Yawancin lokaci akwai gabatar da wani tunani sashe, wanda details na yau da kullum maganganu, misalai da kuma aiwatar da bambance-bambance ga mafi Extended harsuna.

Amma ga cikakken dõgara online sabis sakamakon ba da shawarar ga dukkan developers suka yi amfani da PHP. A magana na yau da aka rubuta da kuma tabbatar da mutum, kiwata cancantar da kuma tabbatar da babu kurakurai.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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