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 Regular Expressions – eine Einführung Es wird mal wieder an der Zeit eine neue Tutorial-Reihe zu starten und was empfiehlt sich da besser als reguläre Ausdrücke (Regular Expressions) - dem...
Tutorial Google Maps API – die Anfänge mit JavaScr... Wie versprochen kommt heute der erste Teil des Google Maps Tutorials, dass sich primär mit der API an sich und JavaScript beschäftigen wird. Bevor wir...
Tutorial Regular Expressions: Nach Zeichen suchen Die einfachste Suche mittels Regular Expressions ist die Suche nach einer Zeichenkette, wie sie zum Beispiel vom PHP-Befehl strpos her bekannt ist. Tr...

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.