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 reguläre Ausdrücke sind: Ein regulärer Ausdruck ist ein Muster, das Text beschreibt und es einer Funktion ermöglicht, Zeichenketten zu validieren, zu durchsuchen oder zu transformieren.
  • preg_match: preg_match prüft, ob ein Muster in einer Zeichenkette vorkommt und gibt beim ersten Treffer true zurück; ideal für die Validierung.
  • Schwangerschaftsteilung: preg_split teilt eine Zeichenkette in ein Array auf, sobald das Muster auftritt, z. B. indem ein Satz an Leerzeichen geteilt wird.
  • 🔁 preg_replace: preg_replace findet jede Übereinstimmung eines Musters und ersetzt sie durch neuen Text; nützlich für Vorlagen und Hervorhebungen.
  • 🔤 Metacharaktere: Symbole wie ., ^, $, * und + bilden komplexe Muster, beispielsweise um eine Übereinstimmung am Anfang oder Ende zu verankern.
  • 📧 E-Mail-Muster: Zeichenklassen und Quantoren werden zu einem einzigen Muster kombiniert, das überprüft, ob eine E-Mail-Adresse wohlgeformt ist.
  • 🤖 KI-Assistent: KI-Tools können aus einer einfachen Beschreibung einen regulären Ausdruck erstellen und ein komplexes bestehendes Muster erklären oder debuggen.

PHP-Reguläre Ausdrücke

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

Integrierte reguläre Ausdrucksfunktionen

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_split()

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

PHP Preg_replace()

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

PHP-E-Mail-Validierungsmuster

Wie Sie der obigen Aufschlüsselung entnehmen können, sind Metazeichen bei der Mustererkennung sehr leistungsstark.

Häufig gestellte Fragen

`preg_match` stoppt beim ersten Treffer und füllt `$matches` mit diesem Ergebnis. `preg_match_all` findet alle Treffer im String und gibt sie in einem verschachtelten Array zurück, was beispielsweise für … geeignet ist.tracwiederholte Elemente.

Die Modifikatoren folgen dem schließenden Trennzeichen und ändern das Suchverhalten. Der Modifikator „i“ bewirkt, dass die Groß-/Kleinschreibung ignoriert wird, „m“ behandelt jede Zeile separat nach „^“ und „$“, und „s“ sorgt dafür, dass der Punkt Zeilenumbrüchen entspricht, wie in „/guru/i“.

Um Erfassungsgruppen zu erstellen, werden Teile des Musters in Klammern gesetzt. Nach preg_match befindet sich die vollständige Übereinstimmung in $matches[0], gefolgt von den einzelnen Gruppen in $matches[1], $matches[2] usw.

Ja. Beschreiben Sie den Text, den Sie abgleichen möchten, z. B. eine Telefonnummer oder ein Datumsformat. Die KI kann dann das Muster sowie ein Beispiel für `preg_match` generieren. Testen Sie die KI mit realen und speziellen Eingaben, bevor Sie sich darauf verlassen.

Ja. Fügen Sie das Muster ein, und die KI kann es Token für Token aufschlüsseln, erklären, was jedes Teil entspricht, und aufzeigen, warum es bei bestimmten Eingaben fehlschlägt, und dann eine korrigierte Version vorschlagen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: