Pagerankanzeige ohne Googletoolbar TM

Navigation

Paidmails

Geldverdienen

Service

Formel 1 Info

Kapitel 3 - Reguläre Ausdrücke in PHP - Dynamische Seiten

 

EinleitungPHP - Kurs für Einsteiger - 15 Kapitel | Beispiele

Hauptseite | Vorwort | Kapitel: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15

Seiten: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15


PHP – Reguläre Ausdrücke

Wie eingangs bereits gesagt, sind reguläre Ausdrücke sehr nützlich und zeitsparend
(vor allem im Zusammenhang mit Zeichenketten). Sie haben allerdings die merkwürdige
Eigenart, im Prinzip leicht zu verstehen, aber in der Praxis des Programmierens etwas bis
ziemlich verzwickt zu sein. Wir können in dieser Einführung nur die Spitze des Eisberges
abdecken und euch den Rat mit auf den Weg zu geben, etwas tiefer in die Einsatzmöglichkeiten
der regulären Ausdrücke einzusteigen, sofern wir zukünftig mit PHP programmieren möchten oder
müssen.

Wir können uns reguläre Ausdrücke als ein System sich entsprechender Muster vorstellen.
Im Prinzip leisten die Funktionen für reguläre Ausdrücke folgendes: Man kann mit ihrer Hilfe
vordefinierte Muster mit Text-(Teil-)Zeichenketten abgleichen, um entweder Übereinstimmungen
zu finden oder eben nicht. Sofern gewünscht, können wir Muster oder Zeichenketten bei gefundenen Übereinstimmungen zwischen dem Muster und der (Teil-) Zeichenkette dann auch ersetzen lassen.
Das Verfahren ist folgendermaßen: Man schreibt zunächst das Muster, dann verwendet man eine der
Funktionen und wendet das Muster auf einen Text (bzw. eine Zeichenkette) an.

Im Wesentlichen kennt PHP zwei Funktionen zum Vergleichen von Mustern und Funktionen und
zum Ersetzen von übereinstimmendem Text durch einen anderen Text.

Wir beginnen damit, ein Muster zu definieren und eine Übereinstimmung zu suchen.

Muster definieren

Bevor wir die Funktion der regulären Ausdrücke verwenden können, müssen wir Muster
definieren. Die einzusetzende Funktion benutzt dieses Muster dann für den Vergleich.
Um Muster zu definieren, gebrauchen wir bestimmte Symbole/Zeichen, die gruppiert
( und u.U. zu Klassen zusammengesetzt) werden. Die Kombination von Symbolen,
Gruppen (und Klassen) bildet das Muster.

Symbole/Zeichen

Der gebräuchlichste Typ bei der Definition von Mustern ist das einfache, wortwörtlich zu
nehmende Zeichen. Wenn wir beispielsweise als Muster a verwenden, wird auch nur mit
dem Buchstaben a eine Übereinstimmung gefunden. Diese Definition reicht in manchen
Situationen aus, aber leistungsstärker wird der Einsatz von regulären Ausdrücken, wenn
wir spezielle Symbole verwenden, die jeweils eine eigene Bedeutung jenseits ihrer “wortwörtlichen“
haben. Der Unterschied zwischen den einfachen Zeichen( also a stimmt nur mit a überein) und
den speziellen Symbolen ( auch als Metazeichen bezeichnet) ist der, dass Metazeichen
weiterreichendere Übereinstimmungen finden – z.B. entspricht der Punkt (.), der ein solches
Zeichen ist, jedem einzelnen Buchstaben ( “.“ gleich a, b, c, d, etc.) – bzw. nach bestimmten
Wiederholungen eines Zeichens suchen.

Die abgebildete Tabelle listet diese Zeichen und ihre Bedeutung auf (Symbole mit der geschweiften Klammer werden auch als Grenzen bezeichnet, sie legen damit fest, wie oft ein Zeichen oder Zeichenbereich gesucht wird).

Zeichen

Übereinstimmung

.

Jeder beliebige Buchstabe

^a

Stimmt überein mit einem String, der mit dem Zeichen beginnt, das nach dem “Dach” steht

a$

Stimmt überein mit einem String, derm it dem Zeichen endet, das vor dem Dollarzeichen steht

a+

Stimmt überein mit einem String, der mehrfach, mindestens aber einmal auftritt

a?

Stimmt überein mit einem String, der höchstens einmal auftritt

a*

Stimmt überein mit einem String, der beliebig häufig auftreten kann- auch keinmal

\n

Stimmt mit einer neuen Zeile überein

a(2)

Stimmt überein mit einem String, der zweimal auftritt

a(1,)

Stimmt überein mit einem String, der mindestens einmal auftritt

a(1,3)

Stimmt überein mit einem String, der mindestens einmal und höchstens dreimal auftritt

[0-9]

Stimmt überein mit irgendeiner Ziffer zwischen 0-9

Tabelle 3.6: Metazeichen der regulären Ausdrücke

Lassen wir uns dies anhand einiger konkreter Beispiele verdeutlichen.

Das Zeichen f+ findet seine Entsprechung mit allen Zeichenbereichen, die mindestens
ein f (oder aber mehr) enthalten, f+ als Übereinstimmung gefunden werden fisch, affe, schifffahrt,
ffff etc.

Das Zeichen b{2,3}passt zu einer Zeichenkette, die b mindestens zweimal, höchstens dreimal enthält
. Es werden also gefunden : ebbe oder blubbbad, aber nicht bbbb oder abc.

Die Kombination des Punktes . ( steht dafür, dass ein beliebiger Buchstabe vorausgesetzt wird)
mit dem Zeichen + ist ein Muster für einen beliebigen Buchstaben, und davon muss es mindestens
einen geben. Insofern wird .+ als Zeichen häufig eingesetzt, denn es entspricht als Muster (mindestens)
einem Buchstaben. Findet sich ein Match, würde die Prüfung also true zurückgeben.

Gruppen

Eine Gruppe besteht aus den Zeichen, wenn sie zusammengefasst in Klammern geschrieben werden.
Eine einfache Gruppe wäre (abc), wobei eine Gruppierung hier überflüssig ist, da abc das gleiche Resultat erzeugt: Es passt zur Zeichenkette abc. Interessanter ist die Gruppierung in Kombinationen mit der geschweiften Klammer. Schauen wir noch einmal in die obige Tabelle: a{2} passt zu aa, d.h. der
Buchstabe a tritt zweimal auf. Wenn wir (abc){2} schreiben, findet sich bei abcabc eine Übereinstimmung.
Deutlicher wird der Unterschied bei folgendem Beispiel eines gruppierten Musters:

Das Muster schiff+ findet eine Übereinstimmung, wenn schiff gefolgt wird von (mindestens) einem weiteren f. (schiff)+ hingegen entspricht nur einer Zeichenkette, die schiff und (mindestens) noch einmal schiff enthält.

Funktionen der regulären Ausdrücke

Zwei vordefinierte Funktionen suchen Übereinstimmungen mit festgelegten Mustern.
Die eine ist ereg( ) und die andere eregi( ) . Der Unterschied zwischen beiden ist ganz einfach:
Ereg unterscheidet zwischen Groß- und Kleinschreibung und eregi nicht.

Beide Funktionen geben true zurück, wenn die Übereinstimmung zwischen Muster und Zeichenkette gefunden wird, und ansonsten false. Ein Einsatz der Funktion(en) kann folgendermaßen aussehen:

ereg(“definiertes Muster“, “zu vergleichende zeichenkette“);

Geschickter ist es, das Muster einer Variablen zuzuweisen:

$muster = “ definiertes Muster“;

$string = “zu vergleichende Zeichenkette“;

ereg($muster, $string);

Vergleichen und Ersetzen

Während diese Funktion ereg( ) und eregi( ) beispielsweise sehr wirksam einsetzbar sind,
um die Gültigkeit bestimmter Eingaben (z.B. in einem Formularfeld) zu testen, ist es in
anderen Fällen wünschenswert, Eingaben zu verwandeln. Dann kommen die Funktionen

ereg_replace( ) oder eregi_replace( )

ins Spiel. Wie eingangs erwähnt, demonstrieren wir den konkreten Einsatz regulärer Ausdrücke erst im letzten Kapitel des Buches, da wir euch an dieser Stelle damit vermutlich überfordern würden. Im Kapitel Tipps und Tricks finden wir dann zwei Beispiele für die Verwendung regulärer Ausdrücke.

Kleiner Hinweis: Wir bieten auch ein Pagrenkservice an. <<Keine Angst anmelden kostet NIX!>>
RANKING CHARTS 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20
KW HS MG VD
Live Band | Portal4 Europa | Paidmail-Service | IHR LINK | IHR LINK | IHR LINK   . .

Pagerank dieser Seite: ::: www.sind-sie-bereit.de ::: Pagerank Anzeige ohne Toolbar

Sind Sie Bereit für den Urlaub den Sie sich VERDIENT haben? Portal für Europa oder hier auf unser Urlaubseite!
Informationen über Ungarn finden Sie auf der Seite Ungarn / Balaton.

Informationen über Paidmails finden Sie auch auf den Seiten Kowsky-Web, HS-SUPPORT und Verdient Schon.