Ohne Frust effektiv arbeiten

Teil 2: Workshop: Strings in PHP verarbeiten: Regular Expressions

Nehmen wir an, wir wollen bei einer Menge von Dateien innerhalb eines Verzeichnisses überprüfen, ob sie mit dem Wort "System" beginnen. Was danach im Dateinamen steht, spielt keine Rolle mehr. Der dafür passende Reguläre Ausdruck lautet wie folgt.

/System.*/

Wie wir bereits kennengelernt haben, steht der Punkt für ein beliebiges Zeichen. Der darauf folgende * gibt an, dass dieses Zeichen null oder beliebig oft vorkommen darf.

Folgende Quantifikatoren sind möglich:

* Beliebig oft oder nullmal + Beliebig oft, aber mindestens einmal ? Einmal oder nullmal {n,m} Mindestens n-mal, maximal m-mal.

Die Quantifikatoren beziehen sich immer auf das davor liegende Zeichen oder wie wir im weiteren Verlauf sehen werden, auf eine Zeichengruppe.

Sonderzeichen, Zeichenklassen

Damit haben wir fast alles, was als Grundwerkzeug für eine erfolgreiche Mustererstellung notwendig ist. Wie in den vorangegangenen Beispielen zu sehen war, gibt es verschiedene Zeichen, die eine wichtige Bedeutung innerhalb der Ausdrücke haben.

Strings in PHP verarbeiten

© Archiv

Mit dem Expression-Builder von Expresso lassen sich Reguläre Ausdrücke auch per Mausklick erzeugen.

Um nach diesen Zeichen innerhalb eines Textes zu suchen beziehungsweise sie in ein Suchmuster aufzunehmen, werden diese durch einen Backslash \ kenntlich gemacht.

Die bisherigen Muster erlauben zwar schon die Überprüfung von Zeichenketten anhand einfacher Ausdrücke. In der Praxis sind aber noch weit flexiblere Prüfungen notwendig. Die Überprüfung, ob ein Text eine gültige deutsche Postleitzahl darstellt, ist ein gutes Beispiel hierfür.

Eine solche Postleitzahl muss fünf Stellen lang sein und darf nur aus Zahlen bestehen, die aber in beliebiger Reihenfolge vorkommen können. Den dazu notwendigen Quantifizierer haben wir bereits kennengelernt. Das folgende Beispiel zeigt, wie bestimmt werden kann, dass der String nur Zahlen beinhalten kann.

/[0-9]{5}/

In den eckigen Klammern kann eine Zeichenbandbreite angegeben werden (in diesem Beispiel von 0 bis 9). Diese Bandbreite ist beliebig und kann neben Ziffern auch Buchstaben enthalten.

Vor- und Nachname:

/[a-zA-ZäöüÄÖÜ]+ [a-zA-ZäöüÄÖÜ]+/

Straße und Hausnummer:

/[a-zA-ZäöüÄÖÜ \.]+ [0-9]+[a-zA-Z]?/

Da diese Definition auf Dauer ganz schön lästig sein kann, existieren einige sogenannte Pseudoklassen, die anstelle der Schreibweise mit den eckigen Klammern eingesetzt werden können. Die Wichtigsten sind:

• \w  Erlaubt nur Wortzeichen, also alle alphanummerischen Zeichen • \d  Erlaubt nur Ziffern • \D  Alle Zeichen außer Ziffern • \s  Erlaubt alle Leerzeichen (Spaces, Tabs, Zeilenumbrüche et cetera)

Zusammengebaut

Mit den bislang beschriebenen Mitteln lässt sich bereits eine Menge anstellen. So auch die eingangs beschriebene Überprüfung von E-Mail-Adressen in einem Formular. Der folgende PHP-Quellcode zeigt eine mögliche - zugegebenermaßen etwas zu naive - Implementierung dieser Überprüfung.

<?php
$text = ,info@domain.de';
$muster = ,/^\w+?\@\w+?\.\w{2,4}$/';
if (preg_match($muster, $text)) {
echo ,gültige Adresse';
} ?>

Der gezeigte Reguläre Ausdruck ist nicht für eine wirkliche Validierung einer E-Mail-Adressse geeignet, dafür ist noch deutlich mehr Arbeit erforderlich. Er zeigt aber sehr schön die Möglichkeiten, die in den bisher gezeigten Mitteln stecken.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…