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

Innehållsförteckning:

Anonim

Vad är reguljärt uttryck i PHP?

PHP Regular Expression, även känt som regex, är en kraftfull mönstermatchningsalgoritm som kan utföras i ett enda uttryck. Vanliga uttryck använder aritmetiska operatorer som (+, -, ^) för att skapa komplexa uttryck. De kan hjälpa dig att utföra uppgifter som att validera e-postadresser, IP-adress etc.

Varför använda reguljära uttryck

  • PHP-reguljära uttryck förenklar identifieringsmönster i strängdata genom att anropa en enda funktion. Detta sparar oss kodningstid.
  • Vid validering av användarinmatning som e-postadress, domännamn, telefonnummer, IP-adresser,
  • Markera nyckelord i sökresultaten
  • När du skapar en anpassad HTML-mall. Regex i PHP kan användas för att identifiera malltaggarna och ersätta dem med verklig data.

I denna PHP Regex-handledning lär du dig:

  • Inbyggda Regular expression-funktioner i PHP
  • PHP Preg_match ()
  • PHP Preg_split ()
  • PHP Preg_replace ()
  • Metatecken för vanligt uttryck
  • Förklara mönstret

Inbyggda Regular expression-funktioner i PHP

PHP har inbyggda funktioner som gör att vi kan arbeta med vanliga funktioner som vi kommer att lära oss i denna självstudie om PHP Regular Expressions. Låt oss titta på de vanliga funktionerna för reguljära uttryck i PHP.

  • preg_match () i PHP - den här funktionen används för att utföra mönstermatchning i PHP på en sträng. Det returnerar sant om en matchning hittas och falsk om en matchning inte hittas.
  • preg_split () i PHP - den här funktionen används för att utföra en mönstermatchning på en sträng och dela sedan resultaten i en numerisk matris
  • preg_replace () i PHP - den här funktionen används för att utföra en mönstermatchning på en sträng och sedan ersätta matchningen med den angivna texten.

Nedan visas syntaxen för en reguljär expressionsfunktion som PHP preg_match (), PHP preg_split () eller PHP preg_replace ().

HÄR,

  • "funktionsnamn (...)" är antingen PHP preg_match (), PHP preg_split () eller PHP preg_replace ().
  • "/ ... /" Snedstreck framåt betecknar början och slutet av vår PHP-regex-testfunktion
  • "'/ mönster /'" är det mönster som vi behöver matcha
  • "ämne" är den textsträng som ska matchas

Låt oss nu titta på praktiska exempel som implementerar ovanstående PHP regex-funktioner.

PHP Preg_match ()

Det första exemplet använder preg_match () i PHP-funktionen för att utföra en enkel mönstermatchning för ordet guru i en given URL.

Koden nedan visar implementeringen av testfunktionen preg_match () för exemplet ovan.

Bläddra till webbadressen http: //localhost/phptuts/preg_match_simple.php

Låt oss undersöka den del av koden som är ansvarig för vår utgång "preg_match ('/ guru /', $ my_url)" HÄR,

  • "preg_match (…)" är PHP regex-funktionen
  • "'/ guru /'" är det reguljära uttrycksmönstret som ska matchas
  • "$ my_url" är variabeln som innehåller texten som ska matchas.

Diagrammet nedan sammanfattar ovanstående punkter

PHP Preg_split ()

Låt oss nu titta på ett annat exempel som använder preg_split () i PHP-funktionen.

Vi tar en strängfras och exploderar den i en matris; mönstret som ska matchas är ett enda mellanslag.

Textsträngen som ska användas i detta exempel är "Jag älskar vanliga uttryck".

Koden nedan illustrerar implementeringen av exemplet ovan.

Bläddra till webbadressen http: //localhost/phptuts/preg_split.php

PHP Preg_replace ()

Låt oss nu titta på preg_replace () i PHP-funktionen som utför en mönstermatchning och sedan ersätter mönstret med något annat.

Koden nedan söker efter ordet guru i en sträng.

Det ersätter ordet guru med ordet guru omgiven av css-kod som belyser bakgrundsfärgen.

Förutsatt att du har sparat filen preg_replace.php, webbläsare till URL: en http: //localhost/phptuts/preg_replace.php

Metatecken för vanligt uttryck

Ovanstående exempel använde mycket grundläggande mönster; metatecken gör det enkelt för oss att utföra mer komplexa mönstermatchningar som att testa giltigheten för en e-postadress. Låt oss nu titta på de vanliga metatecken.

Metatecken Beskrivning Exempel
. Matchar varje enskilt tecken utom en ny rad /./ matchar allt som har en enda karaktär
^ Matchar början av eller sträng / exkluderar tecken / PH / matchar alla strängar som börjar med PH
$ Matchar mönster i slutet av strängen / com $ / matchar guru99.com, yahoo.com Etc.
* Matchar alla noll (0) eller fler tecken / com * / matchar dator, kommunikation etc.
+ Kräver föregående tecken visas minst en gång / yah + oo / matchar yahoo
\ Används för att fly metatecken /yahoo+\.com/ behandlar punkten som ett bokstavligt värde
[…] Karaktärsklass / [abc] / matchar abc
az Matchar gemener / az / matchar cool, glad etc.
AZ Matchar versaler / AZ / matchar VAD, HUR, VARFÖR etc.
0-9 Matchar valfritt tal mellan 0 och 9 / 0-4 / matchar 0,1,2,3,4

Listan ovan ger endast de vanligaste metatecknen i reguljära uttryck.

Låt oss nu titta på ett ganska komplext exempel som kontrollerar giltigheten av en e-postadress.

Förklara mönstret "[/[aa-ZA-Z0-9._-] +@ [aa- zA-Z0-9-] +\. [Aa-zA-Z.] "

HÄR,

  • "'/ ... /'" startar och avslutar det reguljära uttrycket
  • "[a-zA-Z0-9 ._-]" matchar små eller stora bokstäver, siffror mellan 0 och 9 och punkter, understrykningar eller bindestreck.
  • "+ @ [a-zA-Z0-9-]" matchar @ -symbolen följt av gemener eller versaler, siffror mellan 0 och 9 eller bindestreck.
  • "+ \. [a-zA-Z.] {2,5} $ /" slipper punkten med hjälp av snedstrecket och matchar sedan små eller stora bokstäver med en teckenlängd mellan 2 och 5 i slutet av strängen.

Bläddra till webbadressen http: //localhost/phptuts/preg_match.php

Som du kan se från ovanstående uppdelning är metatecken mycket kraftfulla när det gäller matchande mönster.

Sammanfattning

  • Ett reguljärt uttryck eller Regex i PHP är en mönstermatchningsalgoritm
  • Regelbundna uttryck är mycket användbara när du utför valideringskontroller, skapar HTML-mallsystem som känner igen taggar etc.
  • PHP har inbyggda funktioner, nämligen PHP preg_match (), PHP preg_split () och PHP preg_replace () som stöder reguljära uttryck.
  • Metatecken gör att vi kan skapa komplexa mönster