Die ›preg‹-Programmierschnittstelle
(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)
Die Schnittstelle zur Regex-Maschine in PHP ist rein prozedural aufgebaut (siehe Prozeduraler und objektorientierter Ansatz) und besteht aus den sieben Funktionen aus dem oberen Teil von folgender Tabelle. Im unteren Teil sind vier nützliche Funktionen aufgeführt, die im weiteren Verlauf dieses Kapitels erarbeitet werden.
Tabelle: preg-Funktionen in PHP, Übersicht.
Funktion | Verwendung | |
---|---|---|
preg_match | Überprüft, ob die Regex auf den String passt; holt Trefferdaten ab | |
preg_match_all | Holt Trefferdaten ab | |
preg_replace | Ersetzt Treffer durch Ersatztext in einer Kopie des Suchstrings | |
preg_replace_callback | Ruft bei jedem Treffer im String eine Callback-Funktion auf | |
preg_split | Teilt den Suchstring in ein Array von Substrings auf | |
preg_grep | Wählt Elemente aus einem Array aus, die auf die Regex passen (oder nicht passen) | |
preg_quote | Maskiert Regex-Metazeichen in einem String | |
Die folgenden Funktionen sind nicht Teil von preg, sie werden in diesem Kapitel erarbeitet. | ||
preg_match | Version von preg_match mit Unterscheidung von Nicht-Treffer und leerem Treffer | |
preg_regex_to_pattern | Erzeugt aus einem Regex-String einen preg-Musterstring | |
preg_pattern_error | Überprüft einen preg-Musterstring auf Syntaxfehler | |
preg_regex_error | Überprüft einen Regex-String auf Syntaxfehler | |
Was diese Funktionen genau tun, hängt wesentlich von Typ und Anzahl der angegebenen Argumente ab, sowie von den gewählten Optionen und von den Modus-Modifikatoren in der Regex. Bevor wir uns mit den Details befassen, betrachten wir ein paar Programmbeispiele, um ein Gefühl dafür zu bekommen, wie reguläre Ausdrücke in PHP verwendet werden:
/* Überprüfen, ob das HTML-Tag ein <table>-Tag ist */
if (preg_match('/^<table\b/i', $tag))
print "Tag $tag ist ein <table>-Tag\n";
/* Eingabe auf ganze Zahl testen */
if (preg_match('/^-?\d+$/', $eingabe))
print "Eingabe ist eine ganze Zahl\n";
/* Titel aus dem <title>-Tag eines HTML-Strings extrahieren */
if (preg_match('{<title>(.*?)</title>}si', $html, $treffer))
print "Seitentitel: $treffer[1]\n";
/* Zahlen in einem String von Fahrenheit in Celsius umrechnen */
$metrisch = preg_replace('/(-?\d+(?:\.\d+)?)/e', /* Muster */
'floor(($1-32)*5/9 + 0.5)', /* Ersatztext */
$string);
/* Aus einem String mit einfachen CSV-Daten Array-Elemente erzeugen */
$werte_array = preg_split('!\s*,\s*!', $csv_string);
Im letzten Beispiel würde ein String wie ›Eene,●meene,●muh‹ ein Array mit den drei Elementen ›Eene‹, ›meene‹ und ›muh‹ ergeben.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema Reguläre Ausdrücke bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright der deutschen Ausgabe © 2008 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Reguläre Ausdrücke" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln