Reguläre Ausdrücke in PHP: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Reguläre Ausdrücke in PHP: Ein leistungsstarkes Werkzeug für die Textarbeit



Reguläre Ausdrücke (regex) sind Zeichenfolgen, die ein Muster zum Suchen und Manipulieren von Zeichenketten vorgeben. In PHP werden sie über die PCRE-Bibliothek (Perl Compatible Regular Expressions) implementiert und bieten Entwicklern flexible Möglichkeiten zur Datenvalidierung, Textanalyse und zum Ersetzen von Teilzeichenfolgen. In diesem Artikel werden wir die wichtigsten Funktionen, die Syntax und praktische Beispiele für die Verwendung regulärer Ausdrücke in PHP behandeln.



Wichtige PHP-Funktionen für die Arbeit mit regulären Ausdrücken



In PHP gibt es mehrere Schlüsselfunktionen, die die Arbeit mit regulären Ausdrücken ermöglichen. Betrachten wir die wichtigsten davon.



preg_match() — Suche nach der ersten Übereinstimmung



Die Funktion preg_match() sucht nach der ersten Übereinstimmung mit einem Muster in einer Zeichenkette. Sie gibt 1 zurück, wenn eine Übereinstimmung gefunden wurde, 0, wenn nicht, und FALSE im Fehlerfall.



<?php$text = "Meine E-Mail: example@mail.com und test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

if (preg_match($pattern, $text, $matches)) { echo "E-Mail gefunden: " . $matches[0]; // Gibt aus: E-Mail gefunden: example@mail.com}?>


preg_match_all() — Suche nach allen Übereinstimmungen



Im Gegensatz zu preg_match() findet diese Funktion alle Übereinstimmungen in einer Zeichenkette und speichert sie in einem mehrdimensionalen Array.



<?php$text = "Meine E-Mail: example@mail.com und test@domain.org";$pattern = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

preg_match_all($pattern, $text, $matches);print_r($matches[0]);// Gibt aus: Array ( [0] => example@mail.com [1] => test@domain.org )?>


preg_replace() — Ersetzung nach Muster



Die Funktion preg_replace() ersetzt alle Übereinstimmungen mit einem Muster durch eine angegebene Zeichenkette. Sie unterstützt Rückverweise und Modifikatoren.



<?php$text = "Heute ist der 15.03.2024, und morgen wird der 16.03.2024 sein";$pattern = "/(\\d{2})\\.(\\d{2})\\.(\\d{4})/";$replacement = "$3-$2-$1";

echo preg_replace($pattern, $replacement, $text);// Gibt aus: Heute ist der 2024-03-15, und morgen wird der 2024-03-16 sein?>


preg_split() — Aufteilen einer Zeichenkette nach Muster



Die Funktion preg_split() teilt eine Zeichenkette anhand eines angegebenen Musters in ein Array auf. Sie ist ein Analogon zu explode(), jedoch mit Unterstützung für reguläre Ausdrücke.



<?php$text = "Apfel, Birne; Banane: Orange";$pattern = "/[,;: ]+/";

$fruits = preg_split($pattern, $text);print_r($fruits);// Gibt aus: Array ( [0] => Apfel [1] => Birne [2] => Banane [3] => Orange )?>


Syntax regulärer Ausdrücke



Reguläre Ausdrücke werden in PHP in Begrenzer eingeschlossen (normalerweise Schrägstriche /) und können nach dem schließenden Begrenzer Modifikatoren enthalten. Betrachten wir die grundlegenden Syntaxelemente.



Metazeichen und Quantoren



  • Zeichenklassen: . (beliebiges Zeichen), \\d (Ziffer), \\w (Buchstabe, Ziffer, Unterstrich), \\s (Leerzeichen)
  • Quantoren: * (0 oder mehr), + (1 oder mehr), ? (0 oder 1), {n,m} (von n bis m)
  • Anker: ^ (Zeilenanfang), $ (Zeilenende), \\b (Wortgrenze)
  • Gruppierung: () (Gruppenerfassung), (?:) (nicht erfassende Gruppe)
  • Alternative: | (logisches ODER)


Muster-Modifikatoren



  • i — Groß-/Kleinschreibung-unabhängige Suche
  • m — Mehrzeilenmodus (^ und $ gelten für jede Zeile)
  • s — Metazeichen . schließt Zeilenumbruch ein
  • u — Unicode-Unterstützung (erforderlich für die Arbeit mit

Blogs

Buchempfehlungen