PHP Regular Expression / Regex: preg_match () - preg_replace ()

Innholdsfortegnelse:

Anonim

Hva er vanlig uttrykk i PHP?

PHP Regular Expression, også kjent som regex, er kraftig mønstermatchingsalgoritme som kan utføres i et enkelt uttrykk. Vanlige uttrykk bruker aritmetiske operatorer som (+, -, ^) for å lage komplekse uttrykk. De kan hjelpe deg med å utføre oppgaver som å validere e-postadresser, IP-adresse etc.

Hvorfor bruke vanlige uttrykk

  • PHP-regulære uttrykk forenkler å identifisere mønstre i strengdata ved å ringe til en enkelt funksjon. Dette sparer oss for kodingstid.
  • Når du validerer brukerinngang, for eksempel e-postadresse, domenenavn, telefonnummer, IP-adresser,
  • Fremheve nøkkelord i søkeresultatene
  • Når du oppretter en tilpasset HTML-mal. Regex i PHP kan brukes til å identifisere malkoder og erstatte dem med faktiske data.

I denne PHP Regex-opplæringen vil du lære:

  • Innebygde funksjoner for regulært uttrykk i PHP
  • PHP Preg_match ()
  • PHP Preg_split ()
  • PHP Preg_replace ()
  • Vanlige uttrykk Metategn
  • Forklare mønsteret

Innebygde funksjoner for regulært uttrykk i PHP

PHP har innebygd funksjoner som lar oss jobbe med vanlige funksjoner som vi vil lære i denne PHP Regular Expressions-veiledningen. La oss se på de vanlige funksjonene for regulære uttrykk i PHP.

  • preg_match () i PHP - denne funksjonen brukes til å utføre mønstermatching i PHP på en streng. Det returnerer sant hvis en kamp blir funnet og falsk hvis en samsvar ikke blir funnet.
  • preg_split () i PHP - denne funksjonen brukes til å utføre en mønstermatch på en streng og deretter dele resultatene i en numerisk matrise
  • preg_replace () i PHP - denne funksjonen brukes til å utføre et mønstermatch på en streng og deretter erstatte samsvaret med den angitte teksten.

Nedenfor er syntaksen for en vanlig uttrykksfunksjon som PHP preg_match (), PHP preg_split () eller PHP preg_replace ().

HER,

  • "funksjonsnavn (...)" er enten PHP preg_match (), PHP preg_split () eller PHP preg_replace ().
  • "/… /" Foroverskråninger angir begynnelsen og slutten av vår PHP regex-testerfunksjon
  • "'/ mønster /'" er det mønsteret vi trenger å matche
  • "emne" er tekststrengen som skal matches

La oss nå se på praktiske eksempler som implementerer ovennevnte PHP regex-funksjoner.

PHP Preg_match ()

Det første eksemplet bruker preg_match () i PHP-funksjonen til å utføre en enkel mønstersamsvar for ordet guru i en gitt URL.

Koden nedenfor viser implementeringen for preg_match () testerfunksjon for eksemplet ovenfor.

Bla til URL-en http: //localhost/phptuts/preg_match_simple.php

La oss undersøke den delen av koden som er ansvarlig for utgangen vår "preg_match ('/ guru /', $ my_url)" HER,

  • "preg_match (…)" er PHP regex-funksjonen
  • "'/ guru /'" er det vanlige uttrykksmønsteret som skal matches
  • "$ my_url" er variabelen som inneholder teksten som skal matches.

Diagrammet nedenfor oppsummerer punktene ovenfor

PHP Preg_split ()

La oss nå se på et annet eksempel som bruker preg_split () i PHP-funksjonen.

Vi tar en strengfrase og eksploderer den i en matrise; mønsteret som skal matches, er et enkelt mellomrom.

Tekststrengen som skal brukes i dette eksemplet er "Jeg elsker vanlige uttrykk".

Koden nedenfor illustrerer implementeringen av eksemplet ovenfor.

Bla til URL-en http: //localhost/phptuts/preg_split.php

PHP Preg_replace ()

La oss nå se på preg_replace () i PHP-funksjonen som utfører en mønstermatch og deretter erstatter mønsteret med noe annet.

Koden nedenfor søker etter ordet guru i en streng.

Det erstatter ordet guru med ordet guru omgitt av css-kode som fremhever bakgrunnsfargen.

Forutsatt at du har lagret filen preg_replace.php, nettleser til URL http: //localhost/phptuts/preg_replace.php

Vanlige uttrykk Metategn

Ovennevnte eksempler brukte veldig grunnleggende mønstre; metategn lar oss ganske enkelt utføre mer komplekse mønsterkamper som for eksempel å teste gyldigheten til en e-postadresse. La oss nå se på de vanlige metategnene.

Metakarakter Beskrivelse Eksempel
. Matcher et enkelt tegn bortsett fra en ny linje /./ samsvarer med alt som har et enkelt tegn
^ Matcher begynnelsen på eller streng / ekskluderer tegn / PH / samsvarer med en streng som starter med PH
$ Matcher mønster på slutten av strengen / com $ / samsvarer med guru99.com, yahoo.com Etc.
* Matcher alle null (0) eller flere tegn / com * / samsvarer med datamaskin, kommunikasjon etc.
+ Krever forrige tegn vises minst en gang / yah + oo / samsvarer med yahoo
\ Brukes for å unnslippe metakarakterer /yahoo+\.com/ behandler prikken som en bokstavelig verdi
[…] Karakterklasse / [abc] / samsvarer med abc
az Matcher små bokstaver / az / matcher kule, glade osv.
AZ Matcher store bokstaver / AZ / samsvarer med HVA, HVORDAN, HVORFOR etc.
0-9 Matcher hvilket som helst tall mellom 0 og 9 / 0-4 / treffer 0,1,2,3,4

Listen over gir bare de mest brukte metategnene i vanlige uttrykk.

La oss nå se på et ganske komplekst eksempel som sjekker gyldigheten til en e-postadresse.

Forklaring av mønsteret "[/[aa-ZA-Z0-9._- ]+@ [aa- zA-Z0-9-] +\. [Aa-zA-Z.] {2,5,5 $ /] "

HER,

  • "'/ ... /'" starter og slutter det regulære uttrykket
  • "[a-zA-Z0-9 ._-]" samsvarer med små eller store bokstaver, tall mellom 0 og 9 og prikker, understrek eller streker.
  • "+ @ [a-zA-Z0-9-]" samsvarer med @ -symbolet etterfulgt av små eller store bokstaver, tall mellom 0 og 9 eller bindestreker.
  • "+ \. [a-zA-Z.] {2,5} $ /" unnslipper prikken ved å bruke tilbakeslag, og samsvarer med små eller store bokstaver med en tegnlengde mellom 2 og 5 på slutten av strengen.

Bla til URL-en http: //localhost/phptuts/preg_match.php

Som du kan se fra eksemplet ovenfor, er metategn veldig kraftige når det gjelder samsvarende mønstre.

Sammendrag

  • Et vanlig uttrykk eller Regex i PHP er en mønstermatchalgoritme
  • Vanlige uttrykk er veldig nyttige når du utfører valideringskontroller, oppretter HTML mal-systemer som gjenkjenner koder etc.
  • PHP har innebygd funksjoner, nemlig PHP preg_match (), PHP preg_split () og PHP preg_replace () som støtter vanlige uttrykk.
  • Metategn lar oss lage komplekse mønstre