ComputerenProgramméiere

PHP (regex) - Wat ass et? Beispiller an Check regelméisseg Ausstralung

Wann mat Text an all modern programméiere Sprooch schaffen, Entwéckler permanent mat der Ziler vun Input Confirmatioun fir conforme mat de Wënsch Muster, Sich a Test Fragmenter an aner Zorte vu Veraarbechtung Operatiounen vun Charakter Informatiounen treffen schounen. Entwéckelen Är eege Confirmatioun algorithms féiert zu Verloscht vun Zäit, de Code Onbedenklechkeet an Komplexitéit a senger Entwécklung a Moderniséierung.

D'rapid Entwécklung vum Internet an WEB-Design Sproochen néideg der Kreatioun vun villsäiteger a kompakt heescht vun Text Veraarbechtung mat engem Minimum Betrag fir dëse Code néideg. Et ass keng Ausnam an ass populär ënnert Ufänger a berufflech Entwéckler vun PHP Sprooch. D'regulären Ausdrock Sprooch wéi den Text Skeletter d'Aufgab vun Ëmgank den Text ze vereinfachen an Code fir Zénger an Honnerte vu Linnen reduzéieren. Vill Problemer kann guer net ouni et geléist ginn.

Regelméisseg läschten Beitrag am PHP

PHP Sprooch huet dräi Mechanismen fir mat regelméisseg Ausstralung schaffen - «ereg», «mb_ereg» a «preg». De stäerkste gemeinsam ass den Interface «preg», hir Funktiounen déi Zougang zu der Bibliothéik vun der PCRE regulären Ausdrock Ënnerstëtzung, ursprénglech fir d'Sprooch Perl entwéckelt, déi am PHP Pauschal abegraff ass. Preg-Naturgeschicht Funktiounen an engem Text String passende ginn, no engem bestëmmte Muster an der Sprooch vun regelméisseg Ausdrock.

Siwebiergen Basics

Als Deel vun engem kuerzen Artikel ass et onméiglech am Detail déi ganz regulären Ausdrock Siwebiergen ze beschreiwen, fir dës do eng besonnesch Literatur ass. Mir presentéieren nëmmen den Haaptgrond Elementer Méiglechkeete fir Entwéckler ze weisen an de Code Beispiller verstoen.

Am PHP ass regulären Ausdrock formell ganz schwéier, definéiert an also d'Beschreiwung Vereinfachung. A regulären Ausdrock ass en Text String. Et besteet aus engem speziellen Spaltanlag Skelett an der geännert de Wee besot et ze packen. Méiglech Inclusioun vun de verschiddenen Alternativen an Prouwen vun Musteren.

Zum Beispill, am Ausdrock / \ d {3} - \ d {2} - \ d {2} / m beräich ass "/", déi vun der Skelett gefollegt, an d'Symbol «m» ass de geännert.

All d'Muecht vu regulären Ausdrock ass encoded benotzt meta-Zeechen. D'Haaptrei Sprooch metacharacter ass de Ewechmaachen - "\". Et Ännerungen der Zort vun heiten Zeechen op d'Géigendeel (dh. E. an eng normal Charakter Préliminaire a Vize versa ëmgerechent). Aner wichteg metacharacter ass eng riicht Linn «|», d'Alternativ Skelett ginn. Méi Beispiller vun meta-Zeechen:

^ Start Objet oder engem String
( Start subpattern
) Enn subpattern
{ Start quantifier
} Enn quantifier
\ d Dezimalzuel Zifferen vun 0 bis 9
\ D all Charakter, dass net eng Zuel ass
\ s eidel Symbol, Raum, Reiter,
\ W Symbol Wierderbuch

PHP, Veraarbechtung regelméisseg Ausstralung Plaz als separat valabel Charakter considéréiert, sou de Ausdrock vun XYZ an ABC WOU verschidde sinn.

subpatterns

Am PHP regelméisseg subpatterns vun parentheses, a si heiansdo "subexpressions" genannt. Leeschtunge folgend Funktiounen:

  1. Bewëllegung Alternativen. Zum Beispill, d'Hëtzt Muster (eppes | Bird |) gläichzäiteg mat de Wierder "Hëtzt", "Feuervogel" an "waarm". An ouni de Klammeren ass et nëmmen eng eidel String, "Vugel" an "waarm" ginn.

  2. "So" subpattern. Dat heescht, datt wann d'Muster Uféierungszeechen reagéiert, dann all Mätscher ze preparéieren. Fir Kloerheet, ginn mir e Beispill. Entscheet dëse regulären Ausdrock: de Gewënner kritt ((Gold | Gold plated) (Medaille | Coupe)) - an der Kompiléierung vun Mätscher, "de Gewënner eng gëlle Medaille kritt." Zousätzlech zu der éischter Ausdrock, wäert der Sich Resultater verëffentlecht ginn: "gëlle Medaille", "Medaile kritt", "Gold".

Opérateuren Prouwen (kvadrifikatory)

Am regulären Ausdrock beroden an ass oft néideg der Verwiesslungen vun Zuelen a Symboler ze analyséieren. Dat ass net e Problem, wann net vill vun Prouwen. Mä wat maachen wann mir wëssen net hir UNZUEHL? An dësem Fall ass et néideg speziell metacharacters konzentréiert.

Fir eng Beschreiwung vun Prouwen benotzt kvadrifikatory - metacharacters der Zuel ze uginn. Kvadrifikatory gi vun zwou Zorten:

  • an Tranchë gemeinsam;
  • reduzéiert.

Allgemeng quantifier vum Mindestloun a maximal Unzuel vun den Prouwen Element an der Form vun zwou Zuelen an de Klameren, wéi x beréiert {2,5}. Wann déi maximal Zuel vun Prouwen net bekannt ass, ass déi zweet Argument net uginn: x {2}.

Gewerkschaftsbond quantifiers si Symboler fir déi gemeinsam vun Prouwen fir onnéideg overloading Siwebiergen ze vermeiden. Normalerweis do sinn dräi Schnëtt:

1. * - null oder méi Prouwen, déi zu {0} gläichwäerteg ass.

2. + - een oder méi Prouwen, dh, {1} ...

3.? - null oder nëmmen ee widderhuelen - {0,1}.

Beispiller regex

Fir déi, déi regelméisseg Ausstralung Beispiller léieren - déi bescht Magnusson. Mir ginn e puer, datt mat engem Minimum vun Effort hire Méiglechkeete weisen. All Code ass kompatibel mat Versiounen vun PHP 4.x a virun. Ze verstoen voll der Siwebiergen an Benotzen vun all Sprooch Fonctiounen mir d'Buch vum J .. Formulaire, "regulär Ausdrock" recommandéieren, déi voll Siwebiergen considéréiert, an et ginn Beispiller vu regulären Ausdrock net nëmmen PHP, mä och fir eng Python, Perl, MySQL, Java, Rubin a C #.

Publizéieren E-Mail Adress

Aufgab. Et ass en Internet Säit op déi de Visiteur Adress Mail gefrot ass. Regulären Ausdrock muss der Richtegkeet vun der Adressen kontrolléieren éier Messagen schéckt. Check garantéieren heescht net dass der spezifizéierter Mailbox eigentlech existéiert a kritt Messagen. Mee Onkraut eraus selbstverständlech falsch Adressen et kann.

Decisioun. Wéi mat all programméiere Sprooch, kann am PHP regex Mail-Adress Kontrollen verschidde Manéieren ëmgesat ginn, an d'Beispiller an dësem Artikel sinn net der Finale an nëmmen presentéiert. Dofir, an all Fall, soll mir eng Lëscht vun Viraussetzunge fir datt Rechnung gedroe gin brauchen wann programméiere a spezifesch Ëmsetzung hänkt ganz op den Entwéckler.

Also, dass d'Ausdrock eng valabel E-Mail-Tester, sollen dëse Konditiounen kontrolléieren:

  1. D'Präsenz am Start der @ Symbol, an et sinn net thematiséieren.
  2. D'Domain Deel vun der Adress vun der @ Symbol, enthält nëmmen valabel Zeeche fir Domain Nimm. Déi selwecht zielt fir den Numm vum Benotzer.
  3. Wann der Benotzernumm Iwwerpréiwung ass néideg der Präsenz vun speziellen Zeechen wéi eng APOSTROPHE oder vertikal Linn ze bestëmmen. Esou Symboler sinn potenziell geféierlech a kann an esou Zorte vun Attacken, déi SQL-Sprëtz Texter ginn. Vermeiden Adressen.
  4. Benotzernimm erlaben nëmmen ee Punkt, deen an der String vläicht net déi éischt oder lescht Charakter ginn.
  5. D'Domain Numm mussen op d'mannst zwee an net méi wéi sechs Zeeche enthalen.

Beispill, all vun dëse Konditiounen Rechnung huelen kann am folgende Figur gesinn ginn.

Confirmatioun vun enger URL

Aufgab. Kontrolléieren ob der spezifizéierter Text String verweist eng valabel Adress URL. Nach eng Kéier, Note mir dass regelméisseg Ausstralung URL-Check kann zu verschidde Manéieren ëmgesat ginn.

Decisioun. Eis final Versioun ass wéi follegt:

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

Elo seng Komponente méi am Detail mat de Kaarten analyséieren.

ufroen 1 Virun der URL soll keng Zeeche hunn
Fuerderung 2 Schecken der Präsenz vun der Musse Préfixe «http»
Punkt 3 Et muss keen Zeechen ginn
Fuerderung 4 Wann et «s», d'URL Punkten op eng geséchert Verbindung «Majo»
Fuerderung 5 Néideg Deel vun der "//"
Fuerderung 6 keen Zeeche
p. 7-9 Dër d' éischt Niveau Domain an der Präsenz vun Punkt
p.10-13 Dër der Domän vun der zweeter Niveau schreiwen an de Punkt
p.14-17

Fichier Struktur URL - eng Formatioun vun Zuelen, Bréiwer, ënnersträicht, Bindestricher, Punkte, an engem schlitze um Enn

Schecken der Kreditkaart Zuelen

Aufgab. Dir braucht Confirmatioun vun der koum Kreditkaart Zuel vun de meeschte gemeinsam bezuelt Systemer ze realiséieren. Eng Variant nëmmen fir Kaarte Visa a MasterCard.

Decisioun. Wann den Ausdrock schafen braucht Dir de méiglech Präsenz vun thematiséieren am Input Sall Rechnung ze huelen. Déi Ziffere op der Kaart sinn an Gruppen fir einfach Liesen a Capacitéiten ënnerdeelt. Also, ass et natierlech, dass eng Persoun probéieren kann eng Zuel an dëser Manéier gitt (dh. E. Plazen Hëllef).

Schreiwen e allgemengt Ausdrock dass Kont hëlt an de méiglech Plazen oder Bindestricher, ass méi komplizéiert wéi einfach all Charakteren ausser Ziffere verännert. Dofir, recommandéiere mir e Préliminaire Ausdrock / D benotzt, déi all Charakteren ausser Ziffere verschwënnt.

Elo kënnt Dir direkt un der kontrolléieren Zuel goen. All Betriber, Kreditkaart Émetteuren benotzen eng eenzegaarteg Zuel Format. Am Beispill ass et benotzt, an de Client brauch net den Numm vun der Firma un gitt - et duerch d'Unzuel alles ass. Visa Kaarte fänken ëmmer mat den Zuelen 4 an hunn eng Längt vun 13 oder 16 Zifferen. MasterCard fänkt an der Gamme vun 51-55 mat enger laanger Rei 16. Als Resultat, mir kréien de folgende Ausdrock:

Virun der Commande unhuele kënnen weider déi lescht Ziffere vun der Zuel getest ginn, déi op der Luhn Algorithmus berechent ass.

Dër Telefonsnummer

Aufgab. Iwwerpréiwung der Richtegkeet vun der koum Telefonsnummer.

Decisioun. D'Zuel vun Ziffere am fixen a mobilen Telefon Nummeren variéieren jee däitlech op d'Land, sou Ekzeptioun regelméisseg Ausstralung kontrolléieren benotzt, Telefonsnummer richteg onméiglech. Mä international Zuelen hunn eng strikt Format an perfekt fir d'Muster Check. Nach méi, sou datt méi a méi national Telefon Opérateuren sinn probéiert déi selwecht Norm ze treffen. Sall Struktur ass wéi follegt:

+ CCC.NNNNNNNNNNxEEEE, wou:

- C - ass d'Land Code aus 1-3 Ziffere.

- N - Zuel bis zu 14 Zifferen.

- E - fakultativ Extensioun.

Plus ass eng onverzichtbar Element, an der Zeechen X ass nëmmen präsent wann Extensioun waren.

Als Resultat hunn mer folgend Ausdrock:

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

Der, déi an der Rei

Aufgab. Et ass néideg Zoufall ganz vun engem bestëmmte Beräich ze garantéieren. Zousätzlech, ass et néideg engem regulären Ausdrock nëmmen d'Zuelen aus der Rei ze fannen.

Decisioun. Hei sinn e puer Ausstralung zu e puer vun de meeschte Fäll gemeinsam:

Bestëmmen Stonn vun 1 bis 24 ^ (1 [0-2] | [1-9]) $
Dag am Mount 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Sekonnen oder Minutten 0-59 ^ [1-5]? [0-9] $
Eng Zuel vun 1 bis 100 * (100 |? [1-9] [0-9]) $
Dag vum Joer 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Sich IP-Adressen

Aufgab. Et ass néideg, fir festzestellen, ob enger bestëmmter String an IPv4 Format an der Gamme vun 000.000.000.000-255.255.255.255 eng valabel IP-Adress ass.

Decisioun. Wéi mat all Problem an der Sprooch vun PHP, huet d'regulären Ausdrock vill varintov. Zum Beispill, dat:

Online Iwwerpréiwung vu Ausstralung

Check regex richteg fir Ufänger, well vun der Komplexitéit vun der Siwebiergen schwéier ginn, déi vun "normale" programméiere Sproochen Ënnerscheed. Fir dëse Problem léisen, ginn et vill online gedopt Ausstralung dat maachen einfach der Richtegkeet vun der Skelett ze kontrolléieren Dir an der real Text hunn. D'Programméierer Prënzenhochzäit den Ausdrock an Daten kënnen a gesinn direkt d'Resultat vun der Veraarbechtung. Normalerweis ass et eng Referenz Rubrik presentéieren, wat de normale Ausstralung Detailer, Beispiller an Ëmsetzung Differenzen fir déi verlängert Sproochen.

Awer ze voll Vertrauen online Servicer Resultater net fir all Entwéckler deen PHP benotzen recommandéiert. A regulären Ausdrock ass geschriwwen a perséinlech Fra, hieft Qualifikatioun a garantéieren der Verontreiung vu Feeler.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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