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: Von den Grundlagen bis zu fortgeschrittenen Techniken



Reguläre Ausdrücke (regex) sind ein leistungsstarkes Werkzeug zum Suchen, Ersetzen und Analysieren von Textdaten. In PHP werden sie durch eine Reihe von PCRE-Funktionen (Perl Compatible Regular Expressions) implementiert. In diesem Artikel behandeln wir die Grundlagen der Arbeit mit regulären Ausdrücken, betrachten die wichtigsten Funktionen und geben praktische Beispiele, die Ihnen helfen, die Textverarbeitung zu automatisieren.



1. Grundlegende Funktionen für die Arbeit mit regulären Ausdrücken in PHP



PHP bietet mehrere eingebaute Funktionen für die Arbeit mit regulären Ausdrücken. Betrachten wir die gängigsten davon.



preg_match() — Suche nach einer Übereinstimmung

Die Funktion preg_match() prüft, ob eine Zeichenkette einem bestimmten Muster entspricht. Sie gibt 1 zurück, wenn eine Übereinstimmung gefunden wurde, andernfalls 0.



<?php$text = "Hallo Welt! PHP ist cool.";$pattern = "/PHP/";

if (preg_match($pattern, $text)) { echo "Das Wort 'PHP' wurde gefunden!";} else { echo "Keine Übereinstimmungen.";}?>


Wenn Sie die Übereinstimmung selbst erhalten möchten, übergeben Sie ein drittes Argument – ein Array für die Ergebnisse:



<?php$text = "Meine E-Mail: user@example.com";$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];}?>


preg_replace() — Ersetzung nach Muster

Die Funktion preg_replace() ersetzt alle Übereinstimmungen mit einem Muster durch eine angegebene Zeichenkette. Sie ist das Analogon zu str_replace(), jedoch mit Unterstützung für reguläre Ausdrücke.



<?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"; // Teile des Datums umstellen

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

Die Funktion preg_split() teilt eine Zeichenkette anhand eines regulären Ausdrucks. Dies ist praktischer als explode(), wenn die Trennzeichen unterschiedlich sein können.



<?php$text = "Apfel, Birne; Banane: Orange";$pattern = "/[,;:]/"; // Trennzeichen: Komma, Semikolon, Doppelpunkt$fruits = preg_split($pattern, $text);

print_r($fruits);// Array ( [0] => Apfel [1] => Birne [2] => Banane [3] => Orange )?>


2. Metazeichen und Syntax regulärer Ausdrücke



Um reguläre Ausdrücke effektiv nutzen zu können, müssen Sie deren Syntax verstehen. Hier sind die wichtigsten Metazeichen:



  • . — ein beliebiges Zeichen (außer Zeilenumbruch)
  • ^ — Anfang der Zeichenkette
  • $ — Ende der Zeichenkette
  • * — 0 oder mehr Wiederholungen
  • + — 1 oder mehr Wiederholungen
  • ? — 0 oder 1 Wiederholung
  • \\d — Ziffer (0-9)
  • \\w — Buchstabe, Ziffer oder Unterstrich
  • \\s — Leerzeichen
  • [abc] — ein beliebiges Zeichen aus der Menge
  • (...) — Erfassungsgruppe


Beispiel: Überprüfung einer Telefonnummer

<?php$phone = "+7 (123) 456-78-90";$pattern = "/^\\+7\\s\\(\\d{3}\\)\\s\\d{3}-\\d{2}-\\d{2}$/";

if (preg_match($pattern, $phone)) { echo "Telefonnummer ist korrekt!";} else { echo "Ungültiges Format der Telefonnummer.";}?>


3. Fortgeschrittene Techniken und Modifikatoren



Modifikatoren verändern das Verhalten eines regulären Ausdrucks. Sie werden nach dem schließenden Schrägstrich angegeben. Betrachten wir die nützlichsten:



  • i — Groß-/Kleinschreibung-unabhängige Suche
  • m — Mehrzeilenmodus (^ und $ funktionieren für jede Zeile)
  • s — Der Punkt schließt das Zeilenumbruchzeichen ein
  • u — Unterstützung für UTF-8

Blogs

Buchempfehlungen