Regex i PHP

R

Vad är ett reguljärt uttryck?

Det reguljära uttrycket utgår i grunden från matematik som definierar ett antal tecken för något syfte. Olika språk får referenser från detta matematiska koncept och tillämpade det för att söka mönster och validera data. I den här artikeln kommer du att lära dig regex i PHP.

Det finns många användningsfall av regex i PHP som att söka, validera, etc. I den här artikeln kommer du att lära dig om reguljära uttryck i sökmönster. När du kommer att kunna förstå regexet kan du använda det var som helst i PHP.

Ett reguljärt uttryck kan användas för att söka efter text från strängar eller för att ersätta specifika tecken eller strängar.

Ett reguljärt uttryck kan vara ett enda tecken eller en kombination av några komplexa mönster.

Syntax för reguljärt uttryck i PHP

Avgränsaren kan vara vilket tecken som helst som inte är en bokstav, siffra, omvänt snedstreck eller mellanslag. Den vanligaste avgränsaren är snedstrecket framåt (/), men när ditt mönster innehåller snedstreck är det bekvämt att välja andra avgränsare som # eller ~.

I allmänhet består reguljärt uttryck i PHP of tre delar.

  1. avgränsare – Den anger som talar om början eller slutet av strängen i mönstret. En avgränsare kan inte vara ett snedstreck, siffra, bokstav eller mellanslag. Ett snedstreck kan dock användas som avgränsare. Om mönstren du söker efter består av snedstreck kan du ändra avgränsaren till tilt ~ eller hash #.
  2. Mönster – Den specificerade mönstret eller sekvensen av tecken som skulle sökas.
  3. Modifierare (valfritt) – Du kan göra matchningen av mönsterfall okänslig eller känslig.

Exempelvis

$exp = "/php.org/i";

RegextFunctions i PHP

PHP tillhandahåller inbyggda funktioner för reguljära uttryck. De vanligaste regexfunktionerna i PHP är:

  • Preg_replace() – Den räknar antalet gånger mönstret förekommer i strängen och returnerar räkningen.
  • Preg_match() – returnerar 0 om mönstret inte finns i strängen. 1 vid hittat.
  • Preg_match_all() – Denna funktion ersätter strängen med en annan sträng där mönstret matchas. Du kommer att få en tydligare uppfattning i nästa avsnitt om du har svårt att förstå.

preg_match funktion i PHP

Preg_match-funktionen returnerar binärt resultat. Det är antingen 0 eller 1. Om strängen innehåller mönstret du anger i det första argumentet för preg_match-funktionen, kommer den att returnera 1. 0 om den inte hittas.

Titta på följande exempel, där vi söker i strängen efter tecken PHP.

<?php
$str = "Visit php.org";
$pattern = "/php/i";
echo preg_match($pattern, $str); // Outputs 1
?>

preg_match_all-funktionen i PHP

Denna funktion berättar inte om mönstret finns i strängen eller inte. Den returnerar antalet gånger ett mönster visas i strängen. Titta på följande exempel där vi har utfört en skiftlägesokänslig sökning av mönster i den givna strängen.

Exempelvis

<?php
$str = "It is raining heavily. Cars are slipping outside. ";
$pattern = "/ing/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>

/i i exemplet ovan anger du att strängen kan vara antingen gemener eller versaler.

preg_replace-funktionen i PHP

preg_replace funktion returnerar en ny sträng genom att ersätta mönstret som finns i strängen med någon annan teckensträng. Denna funktion accepterar tre parametrar. Den första parametern är mönstret att söka i strängen i den andra parametern. Slutligen är den tredje parametern strängen som ska placeras i stället för mönstret som finns i strängen.

Titta på följande exempel, där vi ersätter ordet webbplats med PHP.org

Exempelvis

<?php
$str = "Visit Website!";
$pattern = "/Website/i";
echo preg_replace($pattern, "php.org", $str); // Outputs "Visit php.org!"
?>

Reguljära uttrycksmodifierare

Du kan justera sökbeteendet för regexet i PHP genom att definiera följande modifieringsvariabler.

  1. I – Används för att utföra skiftlägesokänslig sökning.
  2. U – För korrekt sökning av utf-8-mönster.
  3. M – Lägger till multisökning i PHP-regexet. Det finns några mönster som söker i början eller slutet av varje rad. Så dessa mönster tittar på början och slutet av varje rad av strängen.

Ange intervall i PHP-regex

Förstå följande tre begrepp. Det hjälper dig att sätta intervallet i mönster medan du söker efter text eller ersätter den.

  1. [abc] – Hakparenteserna indikerade att hitta ett tecken från dessa tecken i strängen.
  2. [^0-9] – Leta efter tecknen som inte är inom intervallet inom parentes.
  3. [0-9] – Hitta ett tecken mellan 0 och 9. 0 och 9 är inklusive i det här fallet.

Du kan lära dig mer om Regex-funktioner i PHP här

Lägg till kommentar

Lärarnätverk

Lär dig PHP från A till Ö