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

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".