Sie sind nicht angemeldet.

1

Mittwoch, 26. März 2008, 19:39

Reguläre Ausdrücke mit PHP

Reguläre Ausdrücke mit PHP
Reguläre Ausdrücke stellen ein mächtiges Mittel zum Vergleichen einer Zeichenkette (String) mit einem Muster aus Zeichenkonstanten sowie Sonderzeichen dar.

In diesem Tutorial werden die PHP Funktionen preg_match($ausdruck, $string) und preg_replace($ausdruck, $ersetzungsstring, $string) behandelt. Preg_match() durchsucht einen String nach einem Suchmuster und gibt true zurück, falls eine Übereinstimmung besteht. Preg_replace() sucht nach einem Suchmuster und ersetzt jede Übereinstimmung mit einem Ersetzungsstring.

Grundlegendes
Die regulären Ausdrücke werden in den preg-Funktionen immer zwischen zwei Slahes '/' geschrieben. Soll in dem Ausdruck nach einem Sonderzeichen gesucht werden, muss dieses erst "escaped" werden, damit es nicht falsch interpretiert wird. Dies geschieht mit einem vorangestellten Backslash '\'.

PHP-Quelltext

1
preg_match("/\./"$string); // liefert true, falls die Zeichenkette einen Punkt enthält



Die einfachste Möglichkeit, reguläre Ausdrücke zu nutzen ist die Suche nach einer Stringkonstante als Teilausdruck:

PHP-Quelltext

1
preg_match("/registrieren/""Dein PC würde sich registrieren. Wenn er könnte…"); //liefert true



Bei diesem Ausdruck wird der String auf der Suche nach "registrieren" durchlaufen, bis dieser gefunden wurde (true) bzw. bis der String zu Ende ist (false). Das Beispiel gibt true zurück, da "registrieren" in dem String enthalten ist.
Wenn der Ausdruck am Beginn oder am Ende des Strings gesucht werden soll, werden die Zeichen ^ (für den Beginn des Strings) sowie $ (Das Ende des Strings) eingesetzt.

Quellcode

1
2
^Repräsentiert den Anfang des Strings   
$ Repräsentiert das Ende des Strings  


Soll zb. geprüft werden, ob der String genau der Zeichenkette "PC-Heaven" entspricht wird dies folgendermaßen geschrieben:

PHP-Quelltext

1
 preg_match("/^PC-Heaven$/"$string); //liefert true, falls der String genau der Zeichenkonstante "PC-Heaven" entspricht.



Um ein beliebiges Zeichen darzustellen wird der Punkt '.' verwendet. Optionale Zeichen werden mit einem nachgestellten Fragezeichen '?' und null bis beliebig viele Vorkommen eines Zeichens werden mit einem '*' dargestellt. Ein Sonderfall von '*' ist das Plus-Zeichen '+'. Bei diesem muss das vorangestellte Zeichen mindestens einmal auftreten.

Quellcode

1
2
3
4
.beliebiges Zeichen
x?  optionales 'x'
x*  kein oder mehrere 'x'
x+ ein oder mehrere 'x'  



Folgendes Beispiel liefert true, falls der String mit "pc-heaven" bzw. "pcheaven" beginnt und mit "gut" endet.

PHP-Quelltext

1
Preg_match("/^pc-?heaven.*gut$/" "pc-heaven find ich gut" ); // liefert true



Teilausdrücke speichern
Mithilfe von runden Klammern können in dem regulären Ausdruck Teilausdrücke festgelegt werden, welche in eine über Parameter angegebene Variable geschrieben werden.
Bei der Funktion preg_match() ist dies ein Array als 3. Parameter. Bei preg_replace() werden die gefundenen Teilausdrücke an festgelegter Stelle in den Ersetzungsstring geschrieben. ($1, $2, ..., $n)
Beispiele:

PHP-Quelltext

1
2
Preg_match("/PC-Heaven(.*)registrieren/" "PC-Heaven.de – Dein PC würde sich registrieren…blablabla" $array); // in $array wird die Teilzeichenkette ".de – Dein PC würde sich " gespeichert.
Preg_replace("/(m.+p)/""n$1p""miep mop möp miep"); //Gibt "niep nop nöp niep" zurück



Auswahlen mithilfe von eckigen Klammern Mithilfe von eckigen Klamern "[ ]" werden Auswahlen an möglichen Zeichen festgelegt. Die einzelnen Zeichen werden aufeinander folgend geschrieben. Bereiche werden mit einem Bindestrich definiert.
Ein '^' verneint die Auswahl

Quellcode

1
2
3
4
5
/[aA]/ Trifft zu, wenn ein großes oder ein kleines a gefunden wird
/[a-z]/ Trifft zu, wenn ein Kleinbuchstabe von a bis z gefunden wird
/[a-zA-Z]/ Trifft zu, wenn ein Groß- oder Kleinbuchstabe gefunden wird
/[0-9]/ Trifft zu, wenn eine Ziffer gefunden wird
/[^0-9]/ Trifft zu, wenn ein beliebiges Zeichen, ausser einer Ziffer gefunden wird

Alternative Ausdrücke Alternative Ausdrücke werden mithilfe von '|' festgelegt.

PHP-Quelltext

1
preg_match("Miep|Möp""Ähh… Möp?"); //liefert true


(C) 2007-2008 PC-Heaven.DE. Angeboten unter Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported lizenz

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Odious« (3. Mai 2008, 19:41)


Thema bewerten

Seitwert W3C Validator W3
[Casino | Barcodescanner | …finden und gefunden werden | Displayschutzfolie Samsung Galaxy S2 | IconShock Icons | Klassische PC-Spiele ]
[ Webmaster Bibel | IT-System-Kaufleute | Datenrettung Service | Greensmilies | Avatare | Autokredit online | Computer Forum ]


Einfach himmlisch ist auch der Besuch im online Casino.
Man kann auch ohne lästigen Download die spannende Casino Welt erleben und bei Spielen wie Black Jack oder Roulette richtig absahnen.