Shprehje të rregullta në php për dummies. PHP (shprehje e rregullt) - çfarë është? Shembuj dhe testimi i shprehjeve të rregullta

Shprehjet e rregullta janë modele të veçanta për kërkimin e nënvargjeve në tekst. Me ndihmën e tyre, ju mund të zgjidhni problemet e mëposhtme në një rresht: "kontrolloni nëse një varg përmban numra", "gjeni të gjitha adresat e postës elektronike në tekst", "zëvendësoni disa pikëpyetje të njëpasnjëshme me një".

Le të fillojmë me një mençuri të njohur programimi:

Disa njerëz, kur përballen me një problem, mendojnë: "Po, jam i zgjuar, do ta zgjidh duke përdorur shprehje të rregullta." Tani ata kanë dy probleme.

Shembuj shabllonesh

Le të fillojmë me disa shembuj të thjeshtë. Shprehja e parë në foton më poshtë kërkon një sekuencë prej 3 shkronjash, ku shkronja e parë është "k", e dyta është çdo shkronjë ruse dhe e treta është "t" e pandjeshme ndaj shkronjave (për shembull, "cat" ose "KOT ” i përshtatet këtij modeli). Shprehja e dytë kërkon tekstin për kohën në formatin 12:34.

Çdo shprehje fillon me një karakter ndarës. Simboli / zakonisht përdoret si ai, por mund të përdorni edhe simbole të tjera që nuk kanë një qëllim të veçantë në shprehjet e rregullta, për shembull, ~, # ose @. Kufizuesit alternativë përdoren nëse karakteri / mund të shfaqet në shprehje. Më pas vjen modeli i vargut që kërkojmë, i ndjekur nga një ndarës i dytë, dhe në fund mund të ketë një ose më shumë shkronja flamuri. Ata specifikojnë opsione shtesë kur kërkojnë tekst. Këtu janë shembuj të flamujve:

  • i - thotë se kërkimi duhet të jetë i pandjeshëm ndaj shkronjave të vogla (sipas parazgjedhjes me ndjeshmëri të madhe)
  • u - thotë se shprehja dhe teksti që kërkohet përdorin kodimin utf-8, dhe jo vetëm shkronja latine. Pa të, kërkimi për karaktere ruse (dhe çdo karakter tjetër jo latin) mund të mos funksionojë siç duhet, kështu që duhet ta vendosni gjithmonë.

Vetë shablloni përbëhet nga karaktere të zakonshme dhe ndërtime të veçanta. Epo, për shembull, shkronja "k" në shprehje të rregullta do të thotë vetë, por simbolet do të thotë "çdo numër nga 0 në 5 mund të jetë në këtë vend". Këtu është një listë e plotë e karaktereve speciale (në manualin PHP ato quhen metakaraktere), dhe të gjithë personazhet e tjerë në sekuencën e rregullt janë të zakonshëm:

Më poshtë do të analizojmë kuptimin e secilit prej këtyre karaktereve (dhe gjithashtu do të shpjegojmë pse shkronja "e" vendoset veçmas në shprehjen e parë), por tani për tani le të përpiqemi të zbatojmë shprehjet tona të rregullta në tekst dhe të shohim se çfarë ndodh. PHP ka një funksion të veçantë preg_match ($regexp, $text, $match) që merr shprehje të rregullta, tekst dhe një grup bosh si hyrje. Ai kontrollon nëse teksti përmban një nënvarg që përputhet me modelin e dhënë dhe kthen 0 nëse jo, ose 1 nëse ka. Dhe në grupin e kaluar, përputhja e parë e gjetur me sekuencën e rregullt vendoset në elementin me indeks 0. Le të shkruajmë një program të thjeshtë që aplikon shprehje të rregullta në vargje të ndryshme:

Pasi të shohim shembullin, le të studiojmë shprehjet e rregullta më në detaje.

Kllapa në shprehje të rregullta

Le të shqyrtojmë se çfarë nënkuptojnë llojet e ndryshme të kllapave:

  • Kllapat kaçurrelë a(1,5) specifikojnë numrin e përsëritjeve të karakterit të mëparshëm - në këtë shembull, shprehja kërkon 1 deri në 5 shkronja të njëpasnjëshme "a"
  • Kllapat katrore nënkuptojnë "një nga këto karaktere", në këtë rast shkronjat a, b, c, x, y, z ose një numër nga 0 në 5. Karaktere të tjera speciale si | ose * - ato tregojnë një karakter të rregullt. Nëse ka një simbol ^ në fillim të kllapave katrore, atëherë kuptimi ndryshon në të kundërtën: "çdo karakter përveç atyre të treguara" - për shembull [^a-c] do të thotë "çdo karakter përveç a, b ose c".
  • Në kllapa grupohen personazhet dhe shprehjet. Për shembull, në shprehjen abc+, shenja plus i referohet vetëm shkronjës c dhe kjo shprehje kërkon fjalë si abc, abcc, abccc. Dhe nëse vendosni kllapa a(bc)+, atëherë sasia plus i referohet sekuencës bc dhe shprehja kërkon fjalët abc, abcbc, abcbcbc

Shënim: mund të specifikoni vargjet e karaktereve në kllapa katrore, por mbani mend se shkronja ruse е është e ndarë nga alfabeti dhe për të shkruar "çdo shkronjë ruse" duhet të shkruani [a-яе].

Bexslashes

Nëse keni shikuar mësime të tjera për shprehjet e rregullta, me siguri keni vënë re se vija e prapme shkruhet ndryshe kudo. Diku shkruajnë një vijë të pasme: \d , por këtu në shembujt përsëritet 2 herë: \\d . Pse?

Gjuha e shprehjes së rregullt kërkon që ju të shkruani një vijë të prapme. Sidoqoftë, në vargjet në thonjëza të vetme dhe të dyfishta në PHP, vija e prapme ka gjithashtu një kuptim të veçantë: manual për vargjet. Epo, për shembull, nëse shkruani $x = "\$"; atëherë PHP do ta trajtojë këtë si një kombinim të veçantë dhe do të fusë vetëm karakterin $ në varg (dhe motori i shprehjes së rregullt nuk do të dijë për vijën e prapme përpara tij). Për të futur sekuencën \$ në një varg, duhet të dyfishojmë vijën e prapme dhe të shkruajmë kodin si $x = "\\$"; .

Për këtë arsye, në disa raste (ku sekuenca e karaktereve ka një kuptim të veçantë në PHP) na kërkohet të dyfishojmë vijën e prapme:

  • Për të shkruar \$ në shprehje të rregullt, ne shkruajmë "\\$" në kod
  • Për të shkruar \\ në shprehje të rregullt, ne dyfishojmë çdo vijë të prapme dhe shkruajmë "\\\\"
  • Për të shkruar një vijë të prapme dhe një numër (\1) në format të rregullt, duhet të dyfishoni vijën e prapme: "\\1"

Në raste të tjera, një ose dy vija të prapme do të japin të njëjtin rezultat: "\\d" dhe "\d" do të fusin një palë karakteresh \d në rresht - në rastin e parë, 2 kthesa të pasme janë sekuenca për futjen e një vije të prapme. , në rastin e dytë nuk ka sekuencë të veçantë dhe personazhet do të futen siç janë. Ju mund të kontrolloni se cilat karaktere do të futen në një varg dhe çfarë do të shohë motori i shprehjeve të rregullta duke përdorur echo: echo "\$"; . Po, është e vështirë, por çfarë mund të bësh?

Modele speciale në sezonin e rregullt

  • \d kërkon për çdo shifër, \D - çdo karakter përveç një shifre
  • \w përputhet me çdo shkronjë (të çdo alfabeti), numër ose nënvizim _ . \W përputhet me çdo karakter përveç shkronjës, numrit ose nënvizimit.

Gjithashtu, ekziston një kusht i përshtatshëm për të treguar një kufi fjalësh: \b . Ky konstruksion do të thotë që në njërën anë të tij duhet të ketë një karakter që është shkronjë/numër/nënvizim (\w), dhe në anën tjetër duhet të ketë një karakter që nuk është. Epo, për shembull, ne duam të gjejmë fjalën "mace" në tekst. Nëse shkruajmë shprehjen e rregullt /cat/ui, atëherë ajo do të gjejë sekuencën e këtyre shkronjave kudo - për shembull, brenda fjalës "bagëti". Është e qartë se kjo nuk është ajo që ne donim. Nëse i shtojmë një kusht kufirit të fjalës shprehjes së rregullt: /\bcat\b/ui , atëherë tani do të kërkohet vetëm fjala e pavarur "cat".

Manual

  • Sintaksa e shprehjes së rregullt në PHP, përshkrim i detajuar

Përdorimi më i zakonshëm i shprehjeve të rregullta në Perl është në kërkimin dhe zëvendësimin e operatorëve si p.sh s//, m/, operatorët lidhës =~ ose != etj. Si rregull, të gjithë këta operatorë kanë opsione të ngjashme si:

Zakonisht të gjitha këto opsione shënohen si "/x". Ato madje mund të përdoren brenda shablloneve duke përdorur ndërtimin e ri (?...)

Shprehjet ose modelet e rregullta janë të njëjta me procedurat regexp në Unix. Shprehjet dhe sintaksa janë huazuar nga procedurat V8 të shpërndara lirisht nga Henry Spencer, ku ato përshkruhen në detaje.

Modelet përdorin metakarakterët e mëposhtëm (karaktere që tregojnë grupe karakteresh të tjerë) të quajtur shpesh standardi egrep:

Metakarakterët kanë modifikues (të shkruar pas metakarakterit):

Në të gjitha rastet e tjera, mbajtëset kaçurrela konsiderohen karaktere të zakonshme (të rregullta). Kështu "*" është ekuivalente me (0,), "+" është (1,) dhe "?" - (0.1). n dhe m nuk mund të jenë më të mëdha se 65536.

Si parazgjedhje, metakarakterët janë të pangopur. Ndeshja përhapet sa më shumë që të jetë e mundur, pa marrë parasysh efektin e metakaraktereve të mëvonshëm. Nëse dëshironi të "zvogëloni oreksin e tyre", atëherë përdorni simbolin "?". Kjo nuk e ndryshon kuptimin e metakaraktereve, thjesht zvogëlon përhapjen. Kështu:

Shkronjat e egra funksionojnë në të njëjtën mënyrë si thonjëzat e dyfishta, kështu që ju mund të përdorni karaktere `\` - (karaktere me vijë të kundërt) në to:

\t - karakteri i skedës
\n - linjë e re
\r - një kthim me karrocë
\A - përkthimi në format
\v - tabela vertikale
\a - thirrni
\e - arratisje
\033 - shënimi i simbolit oktal
\x1A - heksadecimal
\c[ - simboli i kontrollit
\l - karakteri tjetër me shkronja të vogla
\u - me shkronja kapitale -//-
\L - të gjitha karakteret janë të vogla deri në \E
\U - në pjesën e sipërme -//-
\E - regjistri kufizues i ndryshimit
\Q - anuloni veprimin si metakarakter

Për më tepër, metakarakterët e mëposhtëm janë shtuar në Perl:

Vini re se ky është i gjithi "një" karakter. Përdorni modifikues për të treguar sekuencën. Kështu që:

Përveç kësaj, ka metakaraktere imagjinare. Duke treguar simbole joekzistente në vendin ku ndryshon vlera. Të tilla si:

Kufiri i fjalës (\b) është një pikë imagjinare midis karaktereve \w dhe \W. Brenda një klase karakteresh, "\b" përfaqëson karakterin backspace. Metakarakteret \A Dhe \Z- janë të ngjashme me "^" dhe "$", por nëse fillimi i rreshtit "^" dhe fundi i rreshtit "$" veprojnë për secilën rresht në një varg me shumë rreshta, atëherë \A Dhe \Z tregoni fillimin dhe fundin e një vargu të tërë me shumë rreshta.

Nëse grupimi (kllapat) përdoret brenda modelit, atëherë numri i nënvargut të grupit caktohet si "\shifror". Vini re se duke ndjekur një model brenda një shprehjeje ose blloku, këto grupe shënohen si "$shifror". Përveç kësaj, ka variabla shtesë:

Shembull:

$s = "Një 1 dy 2 dhe tre 3"; if ($s =~ /(\d+)\D+(\d+)/) ( print "$1\n"; # Rezultati "1" print "$2\n"; # "2" print "$+\n" ; # "2" print "$&\n" # "1 dy 2" print "$"\n";

Versioni 5 i Perl përmban konstruksione shtesë të shabllonit:

Shembull:

$s = "1+2-3*4"; if ($s =~ /(\d)(?=-)/) # Gjeni numrin e ndjekur nga "-" ( print "$1\n"; # Rezultati "2" ) other ( print "gabim kërkimi\n" ;)

(?! model) - "duke parë" përpara me anë të mohimit:

Shembull:

$s = "1+2-3*4"; if ($s =~ /(\d)(?!\+)/) # Gjeni një shifër që nuk ndiqet nga "+" ( print "$1\n"; # Rezultati "2" ) else ( print "kërko gabim\ n";)

(?ismx) - modifikues "të brendshëm". Është i përshtatshëm për t'u përdorur në shabllone, ku, për shembull, duhet të specifikoni një modifikues brenda shabllonit.

Rregullat e shprehjes së rregullt. (regex)

  1. Çdo personazh përfaqëson veten, përveç nëse është një metakarakter. Nëse duhet të anuloni efektin e një metakarakteri, vendosni "\" përpara tij.
  2. Vargu i karaktereve tregon një varg të këtyre karaktereve.
  3. Grupi i karaktereve të mundshme (klasa) është i mbyllur në kllapa katrore "", kjo do të thotë se një nga karakteret e specifikuara në kllapa mund të shfaqet në këtë vend. Nëse karakteri i parë në kllapa është "^", atëherë asnjë nga karakteret e specifikuara nuk mund të shfaqet në këtë pikë të shprehjes. Brenda një klase, ju mund të përdorni simbolin "-" për të treguar një sërë karakteresh. Për shembull, a-z është një nga shkronjat e vogla të alfabetit latin, 0-9 është një numër, etj.
  4. Forumi i portalit PHP. S.U.

Kur punojnë me tekste në çdo gjuhë programimi moderne, zhvilluesit përballen vazhdimisht me detyrat e kontrollit të të dhënave të futura për përputhjen me modelin e dëshiruar, kërkimin dhe zëvendësimin e fragmenteve të testit dhe operacione të tjera tipike për përpunimin e informacionit simbolik. Zhvillimi i algoritmeve tuaja të verifikimit çon në humbje kohe, papajtueshmëri të kodit të programit dhe kompleksitet në zhvillimin dhe modernizimin e tij.

Zhvillimi i shpejtë i gjuhëve të zhvillimit të internetit dhe WEB-it kërkonte krijimin e mjeteve universale dhe kompakte për përpunimin e informacionit të tekstit me një sasi minimale të kodit të kërkuar për këtë. Gjuha PHP, e njohur në mesin e fillestarëve dhe zhvilluesve profesionistë, nuk bën përjashtim. Shprehja e rregullt si gjuhë e shabllonit të tekstit ju lejon të thjeshtoni detyrat e përpunimit të tekstit dhe të reduktoni kodin e programit me dhjetëra e qindra rreshta. Shumë probleme nuk mund të zgjidhen pa të.

Shprehjet e rregullta në PHP

Gjuha PHP përmban tre mekanizma për të punuar me shprehje të rregullta - "ereg", "mb_ereg" dhe "preg". Më e zakonshme është ndërfaqja "preg", funksionet e së cilës sigurojnë akses në bibliotekën e shprehjeve të rregullta PCRE, e zhvilluar fillimisht për gjuhën Perl, e cila përfshihet me PHP. Funksionet Preg kërkojnë një varg teksti të caktuar për përputhje sipas një modeli specifik në gjuhën e shprehjes së rregullt.

Bazat e sintaksës

Në një artikull të shkurtër është e pamundur të përshkruhet në detaje e gjithë sintaksa e shprehjeve të rregullta, ekziston literaturë e veçantë për këtë. Ne paraqesim vetëm elementët kryesorë për të treguar mundësitë e gjera për zhvilluesin dhe për të kuptuar shembujt e kodit.

B është përcaktuar zyrtarisht në një mënyrë shumë komplekse, kështu që le të thjeshtojmë përshkrimin. Një shprehje e rregullt është një varg teksti. Ai përbëhet nga një model i kufizuar dhe një modifikues që tregon se si të përpunohet. Është e mundur të përfshihen alternativa dhe përsëritje të ndryshme në shabllone.

Për shembull, në shprehje /\d(3)-\d(2)-\d(2)/m ndarësi do të jetë «/» , pastaj vjen modeli dhe simboli "m" do të jetë një modifikues.

E gjithë fuqia e shprehjeve të rregullta është e koduar duke përdorur metakaraktere. Metakarakteri kryesor i gjuhës është vija e prapme - "\". Ai ndryshon llojin e personazhit që e ndjek atë (d.m.th., një personazh i rregullt bëhet një metakarakter dhe anasjelltas). Një tjetër metakarakter i rëndësishëm është prerja përpara "|", e cila specifikon variacione alternative të modelit. Më shumë shembuj të metakaraktereve:

PHP, kur përpunon shprehjet e rregullta, e trajton hapësirën si një karakter të veçantë domethënës, kështu që shprehjet ABCWHERE dhe ABCWHERE janë të ndryshme.

Nënmodelët

Në PHP, nënmodelët e rregullt ndahen me kllapa dhe nganjëherë quhen "nënshprehje". Kryeni funksionet e mëposhtme:

    Theksimi i alternativave. Për shembull, shabllon nxehtësi(diçka|zog|) përputhet me fjalët "nxehtësia", "zogu i zjarrit" Dhe "i pjekur". Dhe pa kllapa do të ishte thjesht një varg bosh, "zog" dhe "pjekje".

    Nën-model "emocionues". Kjo do të thotë që nëse një nënvarg përputhet në model, atëherë të gjitha ndeshjet kthehen si rezultat. Për qartësi, le të japim një shembull. Duke pasur parasysh shprehjen e rregullt të mëposhtme: fituesi merr ((artë|i praruar) (medalja|kupa)) - dhe një linjë për të gjetur ndeshjet: "Fituesi merr një medalje të artë". Përveç frazës origjinale, rezultati i kërkimit do të kthehet: "medalje të artë", "medalja", "ari".

Operatorët e përsëritjes (quadrifiers)

Kur shkruani shprehje të rregullta, shpesh është e nevojshme të analizohen përsëritjet e numrave dhe simboleve. Ky nuk është problem nëse nuk ka shumë përsëritje. Por çfarë të bëjmë kur nuk e dimë numrin e saktë të tyre? Në këtë rast, duhet të përdorni metakarakter të veçantë.

Për të përshkruar përsëritjet, përdoren kuadrifikuesit - metasimbolet për të specifikuar sasinë. Kuadrifikuesit janë dy llojesh:

  • e përgjithshme, e mbyllur në kllapa;
  • shkurtuar.

Kuantifikuesi i përgjithshëm specifikon numrin minimal dhe maksimal të përsëritjeve të lejuara të një elementi, të shprehur si dy numra në kllapa kaçurrelë, si kjo: x(2,5). Nëse numri maksimal i përsëritjeve është i panjohur, argumenti i dytë hiqet: x(2,).

Kuantifikuesit e shkurtra përfaqësojnë simbole për përsëritjet më të zakonshme për të shmangur rrëmujën e panevojshme sintaksore. Zakonisht përdoren tre shkurtesa:

1. * - zero ose më shumë përsëritje, që është e barabartë me (0,).

2. + - një ose më shumë përsëritje, d.m.th.,).

3. ? - zero ose vetëm një përsëritje - (0,1).

Shembuj të shprehjeve të rregullta

Për ata që mësojnë shprehje të rregullta, shembujt janë mësimi më i mirë. Ne do të paraqesim disa që tregojnë aftësitë e tyre të gjera me një përpjekje minimale. Të gjithë kodet e programit janë plotësisht të pajtueshëm me versionet PHP 4.x dhe më të larta. Për të kuptuar plotësisht sintaksën dhe për të përdorur të gjitha tiparet e gjuhës, ne rekomandojmë librin e J. Friedl “Regular Expressions”, i cili diskuton plotësisht sintaksën dhe përmban shembuj të shprehjeve të rregullta jo vetëm në PHP, por edhe për Python, Perl, MySQL, Java, Ruby dhe C#.

Kontrollimi i korrektësisë së adresës së postës elektronike

Detyrë. Ekziston një faqe interneti që i kërkon vizitorit një adresë emaili. Shprehja e rregullt duhet të kontrollojë nëse adresa e marrë është e saktë përpara se të dërgoni mesazhe. Kontrolli nuk garanton që kutia postare e specifikuar ekziston në të vërtetë dhe pranon letra. Por mund të eliminojë adresat e pasakta dukshëm.

Zgjidhje. Ashtu si me çdo gjuhë programimi, shprehjet e rregullta të verifikimit të adresës së emailit PHP mund të zbatohen në një sërë mënyrash, dhe shembujt në këtë artikull nuk janë të gjitha dhe të gjitha. Prandaj, në secilin rast ne do të ofrojmë një listë të kërkesave që duhet të merren parasysh gjatë programimit, dhe zbatimi specifik varet tërësisht nga zhvilluesi.

Pra, një shprehje që kontrollon nëse një email është i vlefshëm duhet të kontrollojë kushtet e mëposhtme:

  1. Prania e simbolit @ në vargun burimor dhe mungesa e hapësirave.
  2. Pjesa e domenit të adresës, e ndjekur nga simboli @, përmban vetëm karaktere të vlefshme për emrat e domeneve. E njëjta gjë vlen edhe për emrin e përdoruesit.
  3. Kur kontrolloni një emër përdoruesi, ju duhet të kërkoni për karaktere të veçanta si një apostrof ose Këto karaktere janë potencialisht të rrezikshëm dhe mund të përdoren në sulme të tilla si injektimi SQL. Shmangni adresa të tilla.
  4. Emrat e përdoruesve lejojnë vetëm një pikë, e cila nuk mund të jetë karakteri i parë apo i fundit në rresht.
  5. Emri i domenit duhet të përmbajë të paktën dy dhe jo më shumë se gjashtë karaktere.

Një shembull që merr parasysh të gjitha këto kushte mund të shihet më poshtë në figurë.

Kontrollimi i vlefshmërisë së URL-ve

Detyrë. Kontrolloni nëse një varg teksti i dhënë është i vlefshëm Edhe një herë, shprehjet e rregullta të kontrollit të URL-së mund të zbatohen në mënyra të ndryshme.

Zgjidhje. Versioni ynë përfundimtar duket si ky:

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

Tani le të shohim përbërësit e tij në më shumë detaje duke përdorur figurën.

Kontrollimi i numrave të kartës së kreditit

Detyrë.Është e nevojshme të kontrolloni saktësinë e numrit të futur të kartës plastike për sistemet më të zakonshme të pagesave. Opsioni konsiderohet vetëm për kartat

Zgjidhje. Kur krijoni një shprehje, duhet të merrni parasysh praninë e mundshme të hapësirave në numrin e futur. Numrat në kartë ndahen në grupe për ta bërë më të lehtë leximin dhe diktimin. Prandaj, është krejt e natyrshme që një person mund të përpiqet të fusë numrin në këtë mënyrë (d.m.th. duke përdorur hapësira).

Të shkruash një shprehje universale që merr parasysh hapësirat dhe vizat e mundshme është më e vështirë sesa thjesht të hedhësh poshtë të gjithë karakteret përveç numrave. Prandaj, rekomandohet përdorimi i metakarakterit /D në shprehje, i cili heq të gjitha karakteret përveç numrave.

Tani mund të vazhdoni drejtpërdrejt me kontrollimin e numrit. Të gjitha kompanitë e kartave të kreditit përdorin një format unik të numrit. Në shembull kjo përdoret, dhe klienti nuk ka nevojë të fusë emrin e kompanisë - përcaktohet nga numri. Kartat Visa gjithmonë fillojnë me 4 dhe kanë një gjatësi prej 13 ose 16 shifrash. MasterCard fillon në rangun 51-55 me një gjatësi prej 16. Si rezultat, marrim shprehjen e mëposhtme:

Para përpunimit të porosisë, mund të kryeni një kontroll shtesë të shifrës së fundit të numrit, i cili llogaritet duke përdorur algoritmin Luhn.

Kontrollimi i numrave të telefonit

Detyrë. Kontrollimi i saktësisë së numrit të telefonit të futur.

Zgjidhje. Numri i shifrave në numrat e telefonit fiks dhe celular ndryshon ndjeshëm nga vendi në vend, kështu që nuk është e mundur të kontrollohet universalisht nëse një numër telefoni është i saktë duke përdorur shprehje të rregullta. Por numrat ndërkombëtarë kanë një format të rreptë dhe janë të shkëlqyera për kontrollin e shablloneve. Për më tepër, gjithnjë e më shumë operatorë telefonikë kombëtarë po përpiqen të respektojnë një standard të vetëm. Struktura e numrit është si më poshtë:

+CCC.NNNNNNNNNNxEEEE, Ku:

C është kodi i shtetit, i përbërë nga 1-3 shifra.

N - numër deri në 14 shifra të gjata.

E - zgjatje opsionale.

Plus është një element i kërkuar, dhe shenja x është e pranishme vetëm kur zgjerimi është i nevojshëm.

Si rezultat, kemi shprehjen e mëposhtme:

^\+(1,3)\.(4,14)(?:x.+)?$

Numrat në varg

Detyrë. Ju duhet të përputheni me një numër të plotë brenda një diapazoni specifik. Për më tepër, është e nevojshme që shprehjet e rregullta të përputhen vetëm me numra nga një varg vlerash.

Zgjidhje. Këtu janë disa shprehje për disa nga rastet më të zakonshme:

Gjetja e një adrese IP

Detyrë. Duhet të përcaktoni nëse vargu i dhënë është një adresë IP e vlefshme në formatin IPv4 në intervalin 000.000.000.000-255.255.255.255.

Zgjidhje. Si me çdo detyrë në PHP, shprehjet e rregullta kanë shumë ndryshime. Për shembull, kjo:

Kontrollimi i shprehjeve në internet

Testimi i saktësisë së shprehjeve të rregullta mund të jetë i vështirë për programuesit e rinj për shkak të kompleksitetit të sintaksës, e cila ndryshon nga gjuhët e programimit "të rregullta". Për të zgjidhur këtë problem, ka shumë testues të shprehjeve në internet që e bëjnë të lehtë kontrollimin e korrektësisë së shabllonit të krijuar në tekst real. Programuesi fut shprehjen dhe të dhënat që do të testohen dhe shikon menjëherë rezultatin e përpunimit. Zakonisht ekziston edhe një seksion referimi ku shprehjet e rregullta, shembujt dhe ndryshimet e zbatimit për gjuhët më të zakonshme të programimit përshkruhen në detaje.

Por besimi plotësisht i rezultateve të shërbimeve në internet nuk rekomandohet për të gjithë zhvilluesit që përdorin PHP. Një shprehje e rregullt, e shkruar dhe e testuar personalisht, përmirëson aftësitë tuaja dhe garanton mungesën e gabimeve.




Top