Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen

Wir können jetzt mittels Regular Expressions nach Zeichen in einer Zeichenkette suchen, das macht aber aus Geschwindigkeitsgründen in der Regel keinen Sinn. Und irgendwie entspricht es auch nicht dem Konzept von Regular Expressions, da ich ja eigentlich ein Textmuster erkennen möchte. In der Regel weiß ich zum Beispiel, in welchem Format eine E-Mail-Adresse aufgebaut ist, aber nicht welche sie enthält.

Aus diesem Grund kann man in den Regular Expressions nicht nur nach einem bestimmten Zeichen suchen, sondern auch nach Zeichen innerhalb einer bestimmten Bandbreite: so zum Beispiel „irgendeine Zahl“ oder auch „irgendein Buchstabe“. Innerhalb von Regular Expressions definiert man diese Suchen mit der eckigen Klammer [].

Die eckige Klammer ohne Zusätze definiert dabei genau ein Zeichen. Gibt man zum Beispiel ein [12] an darf im zu durchsuchenden Text an dieser Stelle eine 1 ODER eine 2 stehen. Vermutet man an der betreffenden Stelle „irgendeine Zahl“, dann wäre eine passende Angabe: [0123456789]. Da man zumindest beim ABC nicht alle 26 Buchstaben tippen möchte vereinfachen uns die Regular Expressions die Eingabe von Bereichen: [0123456789] kann auch als [0-9] angegeben werden.

Dies ist auch wichtig, da Regular Expressions Case Sensitive sind, ein A ist also etwas anderes als ein a – aus diesem Grund kann ich innerhalb der eckigen Klammern gleich mehrere Bereiche definieren. Ein [A-Z] würde nur Großbuchstaben finden, ein [a-zA-Z] hingegen alle Buchstaben. Da ich allerdings manchmal auch nach „allem außer“ Suchen möchte, kann die Angabe in den eckigen Klammern mittels eines Circumflex(^) auch negiert werden.

Eine Suche nach [^0-9] liefert zum Beispiel alles außer die Zahlen 0-9. Kommen wir wieder zurück zu unserem Beispiel:

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: in[du]
Findet Windows, aber nicht Win64

Suche nach: x[0-9A-Z]
Findet x64

Suche nach: [^A-M]in
Findet Windows und Win64

Im nächsten Teil des Tutorials wird es darum gehen zu definieren, an welcher Position innerhalb des zu durchsuchenden Strings man die einzelnen Zeichen erwartet.

Ähnliche Beiträge

Simple Regex Language für PHP Simple Regex Language ist eine sehr interessante Bibliothek für PHP. Regex sind eine Sache die zum einen durchaus komplex werden können, zum anderen a...
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 selten...
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 zur Entwicklung von REST-APIs REST (Representational State Transfer) bezeichnet einen Softwarearchitekturstil. Grundlegend bezeichnet REST heutzutage eine einfache Schnittstelle, d...

2 Antworten auf „Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen“

  1. Pingback: Linkhub – Woche 31-2010 - pehbehbeh
  2. Eine schöne Einführung! :)
    Mach mal bitte so idiotensicher weiter. Dann verstehe sogar ich diese für mich immer noch kryptischen Zeichen! Oh was hab ich mich schon damit rumgeärgert, wenn ich auch nur ein Beispiel etwas ändern wollte. ;)

Schreibe einen Kommentar

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