Musterdefinition

Ein Muster (im Englischen Pattern) wird für gewöhnlich mit einem /, # oder ! eingeleitet und mit diesem Zeichen auch wieder beendet. Zusätzlich ist ein Muster immer ein String, das bedeutet, dass dieser in PHP in einfache (') oder doppelte (") Hochkommata eingebettet werden muss, die hier jedoch hier aus Gründen der Übersichtlichkeit weglassen worden sind.

Innerhalb des Musters dienen nun verschiedene Zeichenabfolgen dazu, die konkrete Beschaffenheit des Musters zu definieren. Hier eine Auswahl, die benutzt werden kann:

  • ^: Zeilenbeginn
  • $: Zeilenende
  • \A: Start des Strings
  • \Z: Ende des Strings
  • .: Jedes Einzelzeichen
  • \d: Ziffern
  • \D: Keine Ziffer
  • \w: Jeder Buchstabe, Zahl und auch Unterstrich, der zu einem Wort gehört.
  • \W: Jedes Zeichen, welches nicht Teil eines Wortes ist.
  • \s: Jegliche Art von Leerzeichen
  • \S: Jedes Nicht-Leerzeichen
  • [abc]: a, b oder c
  • [a|b]: a oder b
  • [a-z]: Alle Kleinbuchstaben im Alphabet von a bis z
  • [a-zA-Z]: Alles von a bis z, in groß und klein.
  • a?: Das a einmal oder keinmal
  • a+: Das a beliebig oft, aber mindestens einmal
  • a*: Das \texttt{a} beliebig oft, aber auch keinmal erlaubt.

Zusätzlich können Teilausdrücke des Musters in Klammerung gesetzt werden. Die Funktion preg_match() wird die gematchten Strings dann in Unterteilung in ein Array ablegen und zurückgeben. Es dürfen hierfür runde, eckige oder geschweifte Klammern genutzt werden.

Im folgenden sind einige Beispiele für reguläre Ausdrücke gezeigt:

  • /€\s*\d+,\d\d/: Filtert alle Preisangaben in der Form € x,xx aus einem Text, wobei zwischen dem Eurozeichen und der Zahl beliebig viele Leerstellen stehen dürfen, mindestens eine Ziffer vor dem Komma stehen muss und zwingend zwei Nachkommastellen angegeben sein müssen.
  • !(\([0-9]*\))\s([0-9]*)!: Parst eine Telefonnummer der Form (0123) 456789 und zerlegt diese in Vorwahl und Rufnummer.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.