Tutorial Regular Expressions: Wiederholungen

In den bisherigen Teilen des Tutorials haben wir Elemente immer so gesucht, das sie an einer bestimmten Stelle vorkommen mussten. Dies ist eher seltener der Fall, denn in der Regel ist es eher so, dass wir nach einer unbestimmten Anzahl von Zahlen oder Buchstaben suchen. Oder das wir nach einem Konstrukt suchen der mit etwas bestimmten anfängt, mit etwas bestimmten aufhört, und dazwischen eine beliebige Anzahl von Zeichen stehen (so zum Beispiel ein Tag in einer HTML-Seite).

Entsprechend benötigen wir die sogenannten Metacharacters der Regular Expressions, die uns erlauben, Wiederholungen durchzuführen. Die wohl bekanntesten Metacharacter sind das Fragezeichen ? und der Asteriks *. Das Fragezeichen bedeutet, dass das davorstehende Zeichen im Suchausdruck keinmal oder einmal vorkommen darf! Eine Suche nach Hoh?l findet zum Beispiel die Wörter Hohl, aber auch Hol.

Der Asterisk bedeutet, dass das davorstehende Zeichen keinmal oder beliebig oft vorkommen darf! Es entspricht im Großen und Ganzen den Wildcards, die man aus der Kommandozeile von Betriebssystemen her kennt. Eine Suche nach Wald* findet zum Beispiel Wald, aber auch Waldschrat.

Im Gegensatz dazu muss beim Metacharacter Plus + das davorstehende Zeichen mindestens einmal vorkommen. Es darf aber auch beliebig oft wiederholt werden. Eine Suche nach [A-C]+ würde zum Beispiel das Wort Bier finden, aber nicht das Zebra. Grund ist, dass das Z natürlich nicht in der Aufzählung [A-C] enthalten ist.

Wenn ein Zeichen mehr als einmal vorkommen muss, kann man geschweifte Klammern {n} verwenden. Wobei das davorstehende Zeichen exakt n-Mal wiederholt werden muss. Eine Suche nach [0-9]{4} findet zum Beispiel alle 4-stelligen Zahlen. Möchte man nach einer bestimmten Anzahl von Zeichen suchen, kann man die geschweiften Klammern auch abwandeln: {n,m} findet von dem davorstehenden Zeichen mindestens n, aber maximal m Stellen. Eine Suche nach [0-9]{3,4} findet demnach alle 3- oder 4-stelligen Zahlen.

Kommen wir zurück zu unserem Suchstring:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0)

Suche nach: W*in
Findet Windows und Win64

Suche nach: [xX][0-9]{2}
Findet x64

Suche nach: [0-9]+\.[0-9]+
Findet 4.0, 8.0, 6.0, 4.0, 2.0 …

Im nächsten Teil des Tutorials lernen wir das Gruppieren von Suchergebnissen.

Ähnliche Beiträge

Tutorial Regular Expressions: Nach einem beliebige... Wir können jetzt mittels Regular Expressions nach Zeichen in einer Zeichenkette suchen, das macht aber aus Geschwindigkeitsgründen in der Regel keinen...
Tutorial zur Entwicklung von REST-APIs REST (Representational State Transfer) bezeichnet einen Softwarearchitekturstil. Grundlegend bezeichnet REST heutzutage eine einfache Schnittstelle, d...
Tutorial OpenGeoDB – Die Installation der Datenban... Wer in Deutschland, Österreich und der Schweiz vernünftig geocodieren will, kommt in der Regel nicht an der OpenGeoDB vorbei. Google Maps ist da zwar ...
Tutorial Regular Expressions: Die Position einer Z... Wie man einfache Zeichenketten sucht, ist jetzt klar, zumeist ist es jedoch so das diese an festen Positionen innerhalb des Suchstrings stehen müssen ...

2 Antworten auf „Tutorial Regular Expressions: Wiederholungen“

  1. Pingback: Linkhub – Woche 32-2010 - pehbehbeh
  2. Hallo Guido,

    Regex Tuts sind sehr sinnvoll. Arbeite ab und an immer mal wieder damit und da ich es nicht ständig brauche, bin ich über solche Tuts als Gedächtsstütze und Auffrischung immer froh.

    Gruß,

    Peter

Schreibe einen Kommentar

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