Hvad er regulært udtryk i PHP?
PHP Regular Expression, også kendt som regex, er en stærk mønstertilpasningsalgoritme, der kan udføres i et enkelt udtryk. Regulære udtryk bruger aritmetiske operatorer som (+, -, ^) til at skabe komplekse udtryk. De kan hjælpe dig med at udføre opgaver såsom validering af e-mail-adresser, IP-adresse osv.
Hvorfor bruge regulære udtryk
- PHP Regulære udtryk forenkler identificering af mønstre i strengdata ved at kalde en enkelt funktion. Dette sparer os for kodningstid.
- Ved validering af brugerinput såsom e-mail-adresse, domænenavne, telefonnumre, IP-adresser,
- Fremhævning af nøgleord i søgeresultaterne
- Når du opretter en brugerdefineret HTML-skabelon. Regex i PHP kan bruges til at identificere skabelon-tags og erstatte dem med faktiske data.
I denne PHP Regex-tutorial lærer du:
- Indbygget regulært udtryk Funktioner i PHP
- PHP Preg_match ()
- PHP Preg_split ()
- PHP Preg_replace ()
- Regelmæssige udtryk-metategn
- Forklaring af mønsteret
Indbygget regulært udtryk Funktioner i PHP
PHP har indbyggede funktioner, der giver os mulighed for at arbejde med almindelige funktioner, som vi lærer i denne PHP Regular Expressions tutorial. Lad os se på de almindeligt anvendte regulære ekspressionsfunktioner i PHP.
- preg_match () i PHP - denne funktion bruges til at udføre mønstermatchning i PHP på en streng. Det returnerer sandt, hvis der findes et match og falsk, hvis et match ikke findes.
- preg_split () i PHP - denne funktion bruges til at udføre et mønstermatch på en streng og derefter opdele resultaterne i et numerisk array
- preg_replace () i PHP - denne funktion bruges til at udføre et mønstermatch på en streng og derefter erstatte matchet med den angivne tekst.
Nedenfor er syntaksen for en regulær ekspressionsfunktion såsom PHP preg_match (), PHP preg_split () eller PHP preg_replace ().
HER,
- "funktionsnavn (...)" er enten PHP preg_match (), PHP preg_split () eller PHP preg_replace ().
- "/ ... /" De skråstreg fremad angiver begyndelsen og slutningen af vores PHP regex-testerfunktion
- "'/ mønster /'" er det mønster, som vi skal matche
- "emne" er den tekststreng, der skal matches
Lad os nu se på praktiske eksempler, der implementerer ovenstående PHP regex-funktioner.
PHP Preg_match ()
Det første eksempel bruger preg_match () i PHP-funktionen til at udføre et simpelt mønstermatch for ordet guru i en given URL.
Koden nedenfor viser implementeringen af preg_match () testerfunktionen til ovenstående eksempel.
Gå til URL'en http: //localhost/phptuts/preg_match_simple.php
Lad os undersøge den del af koden, der er ansvarlig for vores output "preg_match ('/ guru /', $ my_url)" HER,
- "preg_match (...)" er PHP regex-funktionen
- "'/ guru /'" er det regulære udtryksmønster, der skal matches
- "$ my_url" er variablen, der indeholder teksten, der skal matches.
Diagrammet nedenfor opsummerer ovenstående punkter
PHP Preg_split ()
Lad os nu se på et andet eksempel, der bruger preg_split () i PHP-funktionen.
Vi tager en streng sætning og eksploderer den i en matrix; det mønster, der skal matches, er et enkelt mellemrum.
Tekststrengen, der skal bruges i dette eksempel, er "I Love Regular Expressions".
Koden nedenfor illustrerer implementeringen af ovenstående eksempel.
Gå til URL'en http: //localhost/phptuts/preg_split.php
PHP Preg_replace ()
Lad os nu se på preg_replace () i PHP-funktionen, der udfører et mønstermatch og derefter erstatter mønsteret med noget andet.
Koden nedenfor søger efter ordet guru i en streng.
Det erstatter ordet guru med ordet guru omgivet af css-kode, der fremhæver baggrundsfarven.
Forudsat at du har gemt filen preg_replace.php, browser til URL'en http: //localhost/phptuts/preg_replace.php
Regelmæssige udtryk-metategn
Ovenstående eksempler brugte meget grundlæggende mønstre; metategn giver os simpelthen mulighed for at udføre mere komplekse mønstermatch som f.eks. at teste gyldigheden af en e-mail-adresse. Lad os nu se på de almindeligt anvendte metategn.
Metakarakter | Beskrivelse | Eksempel |
---|---|---|
. | Matcher ethvert enkelt tegn undtagen en ny linje | /./ matcher alt, hvad der har et enkelt tegn |
^ | Matcher begyndelsen af eller streng / ekskluderer tegn | / PH / matcher enhver streng, der starter med PH |
$ | Matcher mønster i slutningen af strengen | / com $ / matcher guru99.com, yahoo.com Etc. |
* | Matcher ethvert nul (0) eller flere tegn | / com * / matcher computer, kommunikation osv. |
+ | Kræver foregående tegn vises mindst én gang | / yah + oo / matcher yahoo |
\ | Bruges til at undslippe metategn | /yahoo+\.com/ behandler prikken som en bogstavelig værdi |
[…] | Karakterklasse | / [abc] / matcher abc |
az | Matcher små bogstaver | / az / matcher cool, glad osv. |
AZ | Matcher store bogstaver | / AZ / matcher HVAD, HVORDAN, HVORFOR osv. |
0-9 | Matcher et hvilket som helst tal mellem 0 og 9 | / 0-4 / matcher 0,1,2,3,4 |
Ovenstående liste giver kun de mest anvendte metategn i regulære udtryk.
Lad os nu se på et ret komplekst eksempel, der kontrollerer gyldigheden af en e-mail-adresse.
Forklaring af mønsteret "[/[aa-ZA-Z0-9._- ]+@ [aa-zA-Z0-9-] +\. [Aa-zA-Z.] "
HER,
- "'/ ... /'" starter og slutter det regulære udtryk
- "[a-zA-Z0-9 ._-]" matcher alle små eller store bogstaver, tal mellem 0 og 9 og prikker, understregninger eller bindestreger.
- "+ @ [a-zA-Z0-9-]" matcher @ symbolet efterfulgt af små og store bogstaver, tal mellem 0 og 9 eller bindestreger.
- "+ \. [a-zA-Z.] {2,5} $ /" undgår prikken ved hjælp af tilbageslag og matcher derefter små eller store bogstaver med en tegnlængde mellem 2 og 5 i slutningen af strengen.
Gå til URL'en http: //localhost/phptuts/preg_match.php
Som du kan se fra ovenstående eksempel, er metategn meget stærke, når det kommer til matchende mønstre.
Resumé
- Et regulært udtryk eller Regex i PHP er en mønstermatchalgoritme
- Regulære udtryk er meget nyttige, når der udføres valideringskontrol, oprettelse af HTML-skabelonsystemer, der genkender tags osv.
- PHP har indbygget funktioner, nemlig PHP preg_match (), PHP preg_split () og PHP preg_replace (), der understøtter regulære udtryk.
- Metategn giver os mulighed for at skabe komplekse mønstre