PHP preg_match(): Reguliere expressies (Regex)
โก Slimme samenvatting
Reguliere expressies in PHP zijn patroonherkenningstools waarmee tekst in รฉรฉn expressie kan worden gevalideerd, gesplitst en vervangen. Deze handleiding behandelt de kernfuncties preg_match, preg_split en preg_replace, legt de meest voorkomende metatekens uit en bouwt stap voor stap een werkend e-mailvalidatiepatroon op.

Wat is een reguliere expressie in PHP?
PHP reguliere expressiesReguliere expressies, ook wel bekend als regex, zijn een krachtig hulpmiddel voor patroonherkenning dat in รฉรฉn enkele expressie kan worden uitgevoerd. Reguliere expressies gebruiken speciale tekens zoals +, -, en ^ om complexe expressies te creรซren. Ze kunnen u helpen bij taken zoals het valideren van e-mailadressen, IP-adressen en meer.
Waarom reguliere expressies gebruiken?
- PHP-reguliere expressies vereenvoudigen het identificeren van patronen in tekenreeksgegevens door slechts รฉรฉn functie aan te roepen. Dit bespaart ons programmeertijd.
- Bij het valideren van gebruikersinvoer zoals e-mailadressen, domeinnamen, telefoonnummers en IP-adressen.
- Markering van trefwoorden in zoekresultaten
- Bij het maken van een aangepaste HTML-sjabloon. Regex in PHP kan worden gebruikt om de sjabloontags te identificeren en deze te vervangen door daadwerkelijke gegevens.
Ingebouwde reguliere expressiefuncties in PHP
PHP heeft ingebouwde functies waarmee we met reguliere expressies kunnen werken, iets wat we in deze tutorial zullen leren. Laten we eens kijken naar de meest gebruikte functies voor reguliere expressies in PHP.
- De functie `preg_match()` in PHP wordt gebruikt om een โโpatroon in een tekenreeks te herkennen. De functie retourneert `true` als er een overeenkomst wordt gevonden en `false` als er geen overeenkomst wordt gevonden.
- De functie `preg_split()` in PHP wordt gebruikt om een โโpatroonvergelijking uit te voeren op een tekenreeks en vervolgens de resultaten op te splitsen in een numerieke array.
- preg_replace() in PHP โ deze functie wordt gebruikt om een โโpatroonmatch op een string uit te voeren en vervolgens de match te vervangen door de opgegeven tekst.
Hieronder staat de syntaxis voor een reguliere expressiefunctie zoals preg_match(), preg_split() of preg_replace().
<?php
function_name('/pattern/',subject);
?>
HIER,
- โfunction_name(โฆ)โ is ofwel preg_match(), preg_split(), of preg_replace().
- โ/โฆ/โ De schuine strepen geven het begin en einde van onze reguliere expressie aan.
- โ'/patroon/'โ is het patroon dat we moeten matchen.
- โonderwerpโ is de tekstreeks waarmee moet worden vergeleken
Laten we nu eens kijken naar praktische voorbeelden die de bovenstaande PHP-regex-functies implementeren.
Preg_match() in PHP
Het eerste voorbeeld gebruikt de functie preg_match() om een โโeenvoudige patroonvergelijking uit te voeren voor het woord 'guru' in een gegeven tekst. URL.
De onderstaande code toont de implementatie van de functie preg_match() voor het bovenstaande voorbeeld.
<?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"; } ?>
Blader naar het URL http://localhost/phptuts/preg_match_simple.php
Laten we het gedeelte van de code bekijken dat verantwoordelijk is voor onze uitvoer. preg_match('/guru/', $my_url). HIER,
- โpreg_match(โฆ)โ is de PHP regex-functie
- โ'/guru/'โ is het reguliere expressiepatroon dat moet worden vergeleken
- โ$my_urlโ is de variabele die de tekst bevat waarmee moet worden vergeleken.
PHP Preg_split()
Laten we nu eens kijken naar een ander voorbeeld waarin de functie preg_split() wordt gebruikt.
We nemen een stringfrase en exploderen deze in een array; het patroon dat moet worden aangepast, is รฉรฉn enkele spatie.
De tekstreeks die in dit voorbeeld moet worden gebruikt, is "I Love Regular Expressions".
De onderstaande code illustreert de implementatie van het bovenstaande voorbeeld.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Blader naar het URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Laten we nu eens kijken naar de preg_replace() functie. PHP-functie dat een patroonmatch uitvoert en het patroon vervolgens vervangt door iets anders.
De onderstaande code zoekt naar het woord goeroe in a snaar.
Het vervangt het woord 'guru' door het woord 'guru' omgeven door CSS-code die de achtergrondkleur accentueert.
<?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; ?>
Als je het bestand preg_replace.php hebt opgeslagen, ga dan naar de betreffende locatie. URL http://localhost/phptuts/preg_replace.php
Metatekens voor reguliere expressies
De bovenstaande voorbeelden gebruikten zeer eenvoudige patronen. Metatekens kunnen we complexere patroonvergelijkingen uitvoeren, zoals het controleren van de geldigheid van een e-mailadres. Laten we nu eens kijken naar de meest gebruikte metatekens.
| Metateken | Beschrijving | Voorbeeld |
|---|---|---|
| . | Komt overeen met elk afzonderlijk teken, behalve een nieuwe regel | /./ komt overeen met alles dat รฉรฉn teken heeft |
| ^ | Komt overeen met het begin van een tekenreeks of sluit tekens uit. | /^PH/ komt overeen met elke tekenreeks die begint met PH |
| $ | Komt overeen met een patroon aan het einde van de tekenreeks. | /com$/ komt overeen met guru99.com, yahoo.com, enz. |
| * | Komt overeen met nul of meer van de voorgaande tekens. | /com*/ komt overeen met computer, communicatie etc. |
| + | De voorgaande tekens moeten minstens รฉรฉn keer voorkomen. | /ja+oo/ komt overeen met Yahoo |
| \ | Wordt gebruikt om metatekens te ontsnappen. | /yahoo+\.com/ behandelt de punt als een letterlijke waarde |
| [...] | Karakter klasse | /[abc]/ komt overeen met a, b of c |
| AZ | Komt overeen met kleine letters | /az/ komt overeen met cool, vrolijk etc. |
| AZ | Komt overeen met hoofdletters | /AZ/ komt overeen met WAT, HOE, WAAROM etc. |
| 0-9 | Komt overeen met elk getal tussen 0 en 9 | /0-4/ komt overeen met 0,1,2,3,4 |
De bovenstaande lijst geeft alleen de meest gebruikte metatekens in reguliere expressies.
Laten we nu eens kijken naar een vrij complex voorbeeld dat de geldigheid van een e-mailadres controleert.
<?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"; } ?>
Uitleg van het e-mailvalidatiepatroon
HIER,
- โ/โฆ/โ begint en eindigt de reguliere expressie
- โ^[a-zA-Z0-9._-]โ komt overeen met alle kleine en hoofdletters, getallen tussen 0 en 9, en punten, underscores of streepjes.
- โ+@[a-zA-Z0-9-]โ komt overeen met het @-symbool gevolgd door kleine of hoofdletters, getallen tussen 0 en 9, of streepjes.
- โ+\.[a-zA-Z.]{2,5}$/โ ontsnapt aan de punt met behulp van de backslash en komt vervolgens overeen met alle kleine of hoofdletters met een tekenlengte tussen 2 en 5 aan het einde van de tekenreeks.
Blader naar het URL http://localhost/phptuts/preg_match.php
Zoals je in bovenstaande analyse kunt zien, zijn metatekens erg krachtig als het gaat om het herkennen van patronen.




