Reguläre Ausdrücke in PHP mit Beispielen: in der Praxis

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 mit Beispielen: In der Praxis



Reguläre Ausdrücke (Regex) sind ein leistungsstarkes Werkzeug zum Suchen, Ersetzen und Analysieren von Text. In PHP werden sie durch eine Reihe von PCRE-Funktionen (Perl Compatible Regular Expressions) implementiert. Formularvalidierung, Log-Parsing oder Template-Ersetzung in Zeichenketten sind ohne sie kaum vorstellbar.



In diesem Artikel werden wir reguläre Ausdrücke in PHP mit Beispielen durchgehen, die Sie sofort in Ihren Projekten anwenden können. Wir gehen nicht auf die Theorie ein – nur Praxis, Code und reale Szenarien.



1. Grundlegende Funktionen für die Arbeit mit Regex in PHP



PHP verfügt über drei Schlüsselfunktionen, die 95 % der Aufgaben abdecken:



  • preg_match() – Suche nach der ersten Übereinstimmung.
  • preg_match_all() – Suche nach allen Übereinstimmungen.
  • preg_replace() – Ersetzen mit einem Muster.
  • preg_split() – Aufteilen einer Zeichenkette mit einem Muster.


Alle Funktionen benötigen drei Parameter: das Muster, die zu durchsuchende Zeichenkette und optionale Flags.



Beispiel 1: E-Mail-Validierung



<?php$email = "user@example.com";$pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/";

if (preg_match($pattern, $email)) { echo "E-Mail ist gültig";} else { echo "E-Mail ist ungültig";}?>


Lassen Sie uns das Muster aufschlüsseln: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/

  • ^ – Anfang der Zeichenkette.
  • [a-zA-Z0-9._%+-]+ – ein oder mehrere erlaubte Zeichen.
  • @ – das Literal @-Zeichen.
  • [a-zA-Z0-9.-]+ – der Domainname.
  • \\. – Punkt (maskiert).
  • [a-zA-Z]{2,} – die Domain-Endung (mindestens 2 Buchstaben).
  • $ – Ende der Zeichenkette.


Beispiel 2: Extrahieren aller Links aus HTML



<?php$html = '<a href="https://pythonlib.ru">Seite</a> und <a href="/about">Über uns</a>';$pattern = '/href="([^"]+)"/';

preg_match_all($pattern, $html, $matches);

print_r($matches[1]); // Gibt ein Array mit Links aus?>


Hier ist ([^"]+) eine erfassende Gruppe, die nach allem außer Anführungszeichen innerhalb des href-Attributs sucht.



2. Modifikatoren und ihre praktische Anwendung



Modifikatoren ändern das Verhalten eines regulären Ausdrucks. Sie werden nach dem schließenden Schrägstrich (/) platziert.



  • i – Groß-/Kleinschreibung ignorierende Suche.
  • m – Mehrzeilenmodus (^ und $ funktionieren für jede Zeile).
  • s – Punkt passt auf Zeilenumbrüche.
  • U – fauler Modus (standardmäßig gierig).
  • u – UTF-8-Unterstützung.


Beispiel 3: Groß-/Kleinschreibung ignorierende Wortsuche



<?php$text = "PHP ist eine leistungsstarke Sprache. php wird überall verwendet.";$pattern = "/php/i";

preg_match_all($pattern, $text, $matches);echo count($matches[0]); // Gibt 2 aus?>


Beispiel 4: Arbeiten mit Kyrillisch (UTF-8)



<?php$text = "Hallo, Welt!";$pattern = "/[a-z]+/ui"; // u — UTF-8, i — Groß-/Kleinschreibung ignorieren

preg_match_all($pattern, $text, $matches);print_r($matches[0]); // ['Hallo', 'Welt']?>


Ohne den u-Modifikator wird Kyrillisch falsch verarbeitet, da PHP jedes Byte als einzelnes Zeichen behandelt.



3. Ersetzen und Aufteilen von Zeichenketten mit regulären Ausdrücken



Die Funktion preg_replace() ermöglicht es Ihnen, Teile einer Zeichenkette mit einem Muster zu ersetzen. Und preg_split() teilt eine Zeichenkette wie explode, jedoch mit der Möglichkeit, einen Regex zu verwenden.



Beispiel 5: Text von HTML-Tags bereinigen



<?php$html = "<h1>Überschrift</h1><p>Text mit einem <b>fetten</b> Wort</p>";$clean = preg_replace("/<[^>]+>/", "", $html);echo $clean; //                

Blogs

Buchempfehlungen