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.

© 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 lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.