PHP preg_match(): Reguläre Ausdrücke (Regex)
⚡ Intelligente Zusammenfassung
Reguläre Ausdrücke in PHP sind Werkzeuge zum Mustervergleich, mit denen Text in einem einzigen Ausdruck validiert, aufgeteilt und ersetzt werden kann. Diese Anleitung behandelt die Kernfunktionen `preg_match`, `preg_split` und `preg_replace`, erklärt die gängigen Metazeichen und erstellt Schritt für Schritt ein funktionierendes E-Mail-Validierungsmuster.

Was ist ein regulärer Ausdruck in PHP?
PHP-reguläre AusdrückeReguläre Ausdrücke (Regex) sind ein leistungsstarkes Werkzeug zum Mustervergleich, das mit nur einem einzigen Ausdruck ausgeführt werden kann. Sie verwenden Sonderzeichen wie +, - und ^, um komplexe Ausdrücke zu erstellen. Mit ihnen lassen sich beispielsweise E-Mail-Adressen, IP-Adressen und vieles mehr überprüfen.
Warum reguläre Ausdrücke verwenden?
- Reguläre Ausdrücke in PHP vereinfachen die Mustererkennung in Zeichenketten durch den Aufruf einer einzigen Funktion. Das spart Programmierzeit.
- Bei der Überprüfung von Benutzereingaben wie E-Mail-Adressen, Domänennamen, Telefonnummern und IP-Adressen
- Hervorheben von Schlüsselwörtern in Suchergebnissen
- Beim Erstellen einer benutzerdefinierten HTML-Vorlage. Regex in PHP kann verwendet werden, um die Vorlagen-Tags zu identifizieren und sie durch tatsächliche Daten zu ersetzen.
Integrierte reguläre Ausdrucksfunktionen in PHP
PHP verfügt über integrierte Funktionen zur Arbeit mit regulären Ausdrücken, die wir in diesem Tutorial kennenlernen werden. Schauen wir uns die häufig verwendeten Funktionen für reguläre Ausdrücke in PHP an.
- Die PHP-Funktion `preg_match()` dient zum Abgleich von Mustern in einer Zeichenkette. Sie gibt `true` zurück, wenn eine Übereinstimmung gefunden wird, und `false`, wenn keine Übereinstimmung gefunden wird.
- preg_split() in PHP – diese Funktion wird verwendet, um eine Musterübereinstimmung in einer Zeichenkette durchzuführen und die Ergebnisse anschließend in ein numerisches Array aufzuteilen.
- preg_replace() in PHP – diese Funktion wird verwendet, um einen Mustervergleich für eine Zeichenfolge durchzuführen und den Treffer dann durch den angegebenen Text zu ersetzen.
Nachfolgend finden Sie die Syntax für reguläre Ausdrucksfunktionen wie preg_match(), preg_split() oder preg_replace().
<?php
function_name('/pattern/',subject);
?>
HIER,
- “function_name(…)” ist entweder preg_match(), preg_split() oder preg_replace().
- Die Schrägstriche „/…/“ kennzeichnen den Anfang und das Ende unseres regulären Ausdrucks.
- „'/pattern/'“ ist das Muster, das wir abgleichen müssen.
- „Betreff“ ist die Textzeichenfolge, mit der abgeglichen werden soll
Schauen wir uns nun praktische Beispiele an, die die oben genannten PHP-Regex-Funktionen implementieren.
Preg_match() in PHP
Das erste Beispiel verwendet die Funktion preg_match(), um eine einfache Musterübereinstimmung für das Wort „Guru“ in einem gegebenen Text durchzuführen. URL.
Der folgende Code zeigt die Implementierung der Funktion preg_match() für das obige Beispiel.
<?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"; } ?>
Navigieren Sie zu URL http://localhost/phptuts/preg_match_simple.php
Lassen Sie uns den Teil des Codes untersuchen, der für unsere Ausgabe verantwortlich ist. preg_match('/guru/', $my_url). HIER,
- „preg_match(…)“ ist die PHP-Regex-Funktion
- „'/guru/'“ ist das Muster des regulären Ausdrucks, das abgeglichen werden soll
- „$my_url“ ist die Variable, die den Text enthält, mit dem abgeglichen werden soll.
PHP Preg_split()
Betrachten wir nun ein weiteres Beispiel, das die Funktion preg_split() verwendet.
Wir nehmen eine Zeichenfolgenphrase und zerlegen sie in ein Array. Das abzugleichende Muster ist ein einzelnes Leerzeichen.
Die in diesem Beispiel zu verwendende Textzeichenfolge lautet „I Love Regular Expressions“.
Der folgende Code veranschaulicht die Implementierung des obigen Beispiels.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Navigieren Sie zu URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Schauen wir uns nun die Funktion preg_replace() an. PHP-Funktion das einen Mustervergleich durchführt und dann das Muster durch etwas anderes ersetzt.
Der folgende Code sucht nach dem Wort Guru in a Schnur.
Es ersetzt das Wort Guru durch das Wort Guru, das von CSS-Code umgeben ist, der die Hintergrundfarbe hervorhebt.
<?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; ?>
Vorausgesetzt, Sie haben die Datei preg_replace.php gespeichert, navigieren Sie zu URL http://localhost/phptuts/preg_replace.php
Metazeichen für reguläre Ausdrücke
Die obigen Beispiele verwendeten sehr einfache Muster. Metazeichen ermöglichen komplexere Mustervergleiche, beispielsweise die Überprüfung der Gültigkeit einer E-Mail-Adresse. Betrachten wir nun die häufig verwendeten Metazeichen.
| Metazeichen | Beschreibung | Beispiel |
|---|---|---|
| . | Entspricht jedem einzelnen Zeichen außer einer neuen Zeile | /./ passt auf alles, was ein einzelnes Zeichen hat |
| ^ | Findet den Anfang einer Zeichenkette oder schließt bestimmte Zeichen aus. | /^PH/ entspricht jeder Zeichenfolge, die mit PH beginnt |
| $ | Passt zu einem Muster am Ende der Zeichenkette | /com$/ entspricht guru99.com, yahoo.com usw. |
| * | Stimmt mit null oder mehr der vorhergehenden Zeichen überein. | /com*/ passt zu Computer, Kommunikation usw. |
| + | Erfordert, dass das/die vorhergehende(n) Zeichen mindestens einmal vorkommen. | /yah+oo/ entspricht Yahoo |
| \ | Wird verwendet, um Metazeichen zu maskieren | /yahoo+\.com/ behandelt den Punkt als Literalwert |
| [...] | Zeichenklasse | /[abc]/ entspricht a, b oder c |
| AZ | Entspricht Kleinbuchstaben | /az/ passt zu cool, fröhlich usw. |
| A-Z | Entspricht Großbuchstaben | /AZ/ entspricht WAS, WIE, WARUM usw. |
| 0-9 | Entspricht einer beliebigen Zahl zwischen 0 und 9 | /0-4/ entspricht 0,1,2,3,4 |
Die obige Liste enthält nur die am häufigsten verwendeten Metazeichen in regulären Ausdrücken.
Betrachten wir nun ein recht komplexes Beispiel, das die Gültigkeit einer E-Mail-Adresse überprüft.
<?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"; } ?>
Erläuterung des E-Mail-Validierungsmusters
HIER,
- “/…/” beginnt und beendet den regulären Ausdruck
- “^[a-zA-Z0-9._-]” entspricht allen Klein- und Großbuchstaben, Zahlen zwischen 0 und 9 sowie Punkten, Unterstrichen und Bindestrichen.
- “+@[a-zA-Z0-9-]” entspricht dem @-Symbol gefolgt von Klein- oder Großbuchstaben, Zahlen zwischen 0 und 9 oder Bindestrichen.
- “+\.[a-zA-Z.]{2,5}$/” maskiert den Punkt mit dem Backslash und findet dann am Ende der Zeichenkette alle Klein- oder Großbuchstaben mit einer Zeichenlänge zwischen 2 und 5.
Navigieren Sie zu URL http://localhost/phptuts/preg_match.php
Wie Sie der obigen Aufschlüsselung entnehmen können, sind Metazeichen bei der Mustererkennung sehr leistungsstark.




