Um mit Hilfe von Regulären Ausdrücken ein Suchmuster zu beschreiben, benötigt man Zeichen, die eine spezielle Funktion erfüllen, und somit nicht zum zu suchenden Text an sich gehören. Diese Zeichen werden Metazeichen genannt.
Soll ein Metazeichen als normales Zeichen und nicht als Metazeichen behandelt werden, muss es maskiert werden. Dies geschieht mit Hilfe des Backslashs. Da der Backslash auch ein Metazeichen ist, muss, wenn im Suchmuster ein Backslash als normales Zeichen verwendet werden soll, dieser auch maskiert werden.
Der Punkt
Der Punkt . steht für jedes beliebige Zeichen (außer für einen Zeilenumbruch).
Kann also der zu untersuchende Text an einer Stelle beliebige Zeichen
beinhalten, so lässt sich das mit dem Punkt ausdrücken.
Weiß man zum Beispiel die korrekte Schreibweise eines Namens nicht, so findet
dieser Ausdruck
/Me.er/
in einem Text sowohl den Namen Meier als auch Meyer.
Aber Achtung: Da der Punkt für jedes Zeichen steht, findet der Reguläre
Ausdruck auch Texte wie Meder, Meper,
Me0er u.s.w.
Soll sich dieser beliebige Text auch über mehrere Zeilen fortsetzen können, so kann dies mit Hilfe des Modifiers s festgelegt werden. Damit trifft der Punkt auch auf Zeilenumbrüche zu.
Das Accent Zirkumflex
Um sicherzustellen, dass der Anfang des Suchmusters
auch genau und ausschließlich auf den Anfang des zu durchsuchenden Textes
zutrifft, kann man das Accent Zirkumflex ^ benutzen. Es wird dem Suchmusters
vorangestellt. Somit würde der Reguläre Ausdruck
~^http://~
auf die Zeichenkette http://www.abc.de
zutreffen, auf index.php?u=http://www.abc.de
aber nicht, da hier der Text http nicht wie angegeben
am Anfang des Textes steht.
Das Zirkumflex hat noch eine weitere Bedeutung in Verbindung mit Zeichenklassen.
Das Dollarzeichen
Das Dollarzeichen $ ist das Gegenstück zum Zirkumflex. Es bezieht sich auf das
Ende des Suchmusters, welches mit dem Ende des Textes übereinstimmen muss.
Der Reguläre Ausdruck
/foobar$/
trifft auf die Zeichenkette vieltextvorfoobar
zu, aber nicht auf vieltextvorfoobardahinterauch, da hier
foobar nicht am Ende des Textes steht.
Zirkumflex und Dollarzeichen lassen sich natürlich auch kombinieren, so dass
ein Suchmuster auf Anfang und Ende des zu
durchsuchenden Textes zutreffen muss.
Der Ausdruck
/^foobar$/
trifft somit nicht auf textvorfoobar und
foobartextdahinter zu, sondern nur auf den Text
foobar.
Die Pipe
Mit dem Pipe-Zeichen | lässt sich ein ODER beschreiben. Der Text
muss also entweder dieses oder jenes enthalten. Der Reguläre Ausdruck
/test(rakete|flug)/
trifft auf die Zeichenkette testrakete genauso zu, wie auf
testflug.
Analog lassen sich auch mehr als zwei Bedingungen per | verknüpfen.
Der Ausdruck
/test(rakete|flug|hund|katze)/
trifft also auf die Zeichenketten testrakete,
testflug, testhund und
testkatze zu.
Fragezeichen, Stern und Plus
Die Zeichen ?, *
und + werden verwendet, um Aussagen über Anzahl
und Wiederholung von Zeichen oder Zeichengruppen zu treffen.
Sie gehören zu den Quantifiern, die in einen eigenen Kapitel
behandelt werden.
Runde Klammern
Mit runden Klammern () lassen sich Bereiche im Suchmuster
zu Unterausdrücken zusammenfassen, auf die man unter anderem
auch wieder zurückgreifen kann.
Eckige Klammern
Mit Hilfe der eckigen Klammern [] kann man Bereiche
von Zeichen (a-f, alle Ziffern, ...), sogenannte Zeichenklassen definieren.
Geschweifte Klammern
Mit geschweiften Klammern kann man ebenfalls Angaben zu Anzahl und Wiederholung
von Zeichen machen, sie {} zählen also auch
zu den Quantifiern.
Der Backslash
Der Backslash \ dient unter anderem zum Maskieren von nicht alpha-numerischen Zeichen
innerhalb des Suchmusters. Außerdem erfüllt er noch
eine Menge anderer Funktionen - so viele, dass ihm ein eigenes Kapitel
gewidmet wurde.
Der Bindestrich
Der Bindestrich - wird nur innerhalb von Zeichenklassen
als Metazeichen interpretiert, er dient dort zur Angabe von
Zeichenbereichen.
Verwandte Themen
Kapitelnavigation
- Letzte Änderung: 24.07.2010, 03:39:02
- © 2003 - 2010 nophia web