PHP preg_match(): Regulære uttrykk (Regex)
⚡ Smart oppsummering
Regulære uttrykk i PHP er mønstersamsvarsverktøy som validerer, deler og erstatter tekst i et enkelt uttrykk. Denne gjennomgangen dekker kjernefunksjonene preg_match, preg_split og preg_replace, forklarer vanlige metategn og bygger et fungerende e-postvalideringsmønster trinn for trinn.

Hva er regulært uttrykk i PHP?
PHP regulære uttrykk, også kjent som regex, er et kraftig mønstermatchingsverktøy som kan utføres i et enkelt uttrykk. Regulære uttrykk bruker spesialtegn som +, - og ^ for å lage komplekse uttrykk. De kan hjelpe deg med å utføre oppgaver som å validere e-postadresser, IP-adresser og mer.
Hvorfor bruke regulære uttrykk
- PHP-regulære uttrykk forenkler identifisering av mønstre i strengdata ved å kalle én enkelt funksjon. Dette sparer oss for kodetid.
- Ved validering av brukerinndata som e-postadresser, domenenavn, telefonnumre og IP-adresser
- Utheve søkeord i søkeresultatene
- Når du oppretter en tilpasset HTML-mal. Regex i PHP kan brukes til å identifisere malkodene og erstatte dem med faktiske data.
Innebygde regulære uttrykksfunksjoner i PHP
PHP har innebygde funksjoner som lar oss jobbe med regulære uttrykk, noe vi skal lære om i denne veiledningen. La oss se på de vanlige regulære uttrykksfunksjonene i PHP.
- preg_match() i PHP – denne funksjonen brukes til å utføre mønstermatching på en streng. Den returnerer sann hvis det finnes et treff og usann hvis det ikke finnes et treff.
- preg_split() i PHP – denne funksjonen brukes til å utføre et mønstermatch på en streng og deretter dele resultatene inn i en numerisk array.
- preg_replace() i PHP – denne funksjonen brukes til å utføre en mønstermatch på en streng og deretter erstatte samsvaret med den spesifiserte teksten.
Nedenfor finner du syntaksen for en regulær uttrykksfunksjon som preg_match(), preg_split() eller preg_replace().
<?php
function_name('/pattern/',subject);
?>
HER,
- «funksjonsnavn(…)» er enten preg_match(), preg_split() eller preg_replace().
- «/…/» skråstrekene angir begynnelsen og slutten av det regulære uttrykket vårt
- «'/mønster/'» er mønsteret vi må matche
- "emne" er tekststrengen som skal matches mot
La oss nå se på praktiske eksempler som implementerer PHP regex-funksjonene ovenfor.
Preg_match() i PHP
Det første eksemplet bruker preg_match()-funksjonen til å utføre et enkelt mønstertreff for ordet guru i en gitt URL.
Koden nedenfor viser implementeringen av preg_match()-funksjonen for eksemplet ovenfor.
<?php $my_url = "www.guru99.com"; if (preg_match("/guru/", $my_url)) { echo "the url $my_url contains guru"; } else { echo "the url $my_url does not contain guru"; } ?>
Bla til URL http://localhost/phptuts/preg_match_simple.php
La oss undersøke den delen av koden som er ansvarlig for utdataene våre, preg_match('/guru/', $min_url)HER,
- "preg_match(...)" er PHP regex-funksjonen
- "'/guru/'" er det regulære uttrykksmønsteret som skal matches
- "$my_url" er variabelen som inneholder teksten som skal matches mot.
PHP Preg_split()
La oss nå se på et annet eksempel som bruker preg_split()-funksjonen.
Vi tar en strengfrase og eksploderer den til en rekke; mønsteret som skal matches er en enkelt plass.
Tekststrengen som skal brukes i dette eksemplet er "Jeg elsker regulære uttrykk".
Koden nedenfor illustrerer implementeringen av eksemplet ovenfor.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Bla til URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
La oss nå se på preg_replace() PHP funksjon som utfører en mønstermatch og deretter erstatter mønsteret med noe annet.
Koden nedenfor søker etter ordet guru i en string.
Den erstatter ordet guru med ordet guru omgitt av CSS-kode som fremhever bakgrunnsfargen.
<?php $text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com"; $text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text); echo $text; ?>
Forutsatt at du har lagret filen preg_replace.php, bla til URL http://localhost/phptuts/preg_replace.php
Regulære uttrykks metakarakterer
Eksemplene ovenfor brukte svært grunnleggende mønstre. Metategn lar oss utføre mer komplekse mønstertreff, for eksempel å teste gyldigheten til en e-postadresse. La oss nå se på de vanlige metategnene.
| Metakarakter | Tekniske beskrivelser | Eksempel |
|---|---|---|
| . | Matcher ethvert enkelt tegn bortsett fra en ny linje | /./ samsvarer med alt som har et enkelt tegn |
| ^ | Samsvarer med begynnelsen av en streng eller ekskluderer tegn | /^PH/ samsvarer med en hvilken som helst streng som begynner med PH |
| $ | Matcher et mønster på slutten av strengen | /com$/ samsvarer med guru99.com, yahoo.com osv. |
| * | Samsvarer med null eller flere av de foregående tegnene | /com*/ matcher datamaskin, kommunikasjon osv. |
| + | Krever at foregående tegn (eller tegn) vises minst én gang | /yah+oo/ samsvarer med yahoo |
| \ | Brukes til å escape metategn | /yahoo+\.com/ behandler prikken som en bokstavelig verdi |
| [...] | Karakterklasse | /[abc]/ samsvarer med a, b eller c |
| AZ | Matcher små bokstaver | /az/ matcher kul, glad osv. |
| AZ | Matcher store bokstaver | /AZ/ samsvarer med HVA, HVORDAN, HVORFOR osv. |
| 0-9 | Matcher et hvilket som helst tall mellom 0 og 9 | /0-4/ matcher 0,1,2,3,4 |
Listen ovenfor gir kun de mest brukte metategnene i regulære uttrykk.
La oss nå se på et ganske komplekst eksempel som sjekker gyldigheten til en e-postadresse.
<?php $my_email = "name@company.com"; if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) { echo "$my_email is a valid email address"; } else { echo "$my_email is NOT a valid email address"; } ?>
Forklaring av e-postvalideringsmønsteret
HER,
- «/…/» starter og avslutter det regulære uttrykket
- «^[a-zA-Z0-9._-]» samsvarer med små eller store bokstaver, tall mellom 0 og 9, og prikker, understrek eller bindestreker.
- «+@[a-zA-Z0-9-]» samsvarer med @-tegnet etterfulgt av små eller store bokstaver, tall mellom 0 og 9 eller bindestreker.
- «+\.[a-zA-Z.]{2,5}$/» bruker omvendt skråstrek for å omgå punktum, og matcher deretter små eller store bokstaver med en tegnlengde mellom 2 og 5 på slutten av strengen.
Bla til URL http://localhost/phptuts/preg_match.php
Som du kan se av oversikten ovenfor, er metategn svært kraftige når det gjelder å matche mønstre.




