Reguläre Ausdrücke - Tutorial Teil 4: Zeichenauswahl und alternative Zeichen

 

0 Kommentare | Kommentar schreiben | Bewerten | Artikel melden

 

Typ

Tutorial für Anfänger

Kategorie

Tools & Nützliches

Sprache

Deutsch

Autor

Stefan Trost Media

Eintrag

12.07.2011

Bewertungen

120

Views

4162
 
 


Über den Autor

Stefan Trost ist Entwickler von Software und Weblösungen und kümmert sich auch gerne um Ihre Anliegen. Kontakt

Profil von Stefan Trost Media
Artikel von Stefan Trost Media

Bislang haben wir uns in den ersten drei Teilen dieses Tutorials nur um explizit definierte Zeichen gekümmert. Aber mit regulären Ausdrücken sind auch Zeichen-Alternativen und das ansprechen ganzer Zeichenklassen möglich. In diesem Teil des Tutorials wollen wir darauf eingehen. Diese Teile sind bisher erschienen:

Teil 1: Einführung und Grundlagen | Teil 2: Einfache Zeichenketten, Wiederholungen und Gruppieren | Teil 3: Metazeichen | Teil 4: Zeichenauswahl und alternative Zeichen | Teil 5: Zeichengruppen und Klassen | Teil 6: Wiederverwendung und Rückwärtsreferenzen | Teil 7: Modifikatoren | Teil 8: Anwendung und Beispiele

Wichtiger Hinweis

Um die präsentierten Beispiele ausprobieren zu können und um selber reguläre Ausdrücke zu testen, können Sie die Software Text Konverter in der Basic Version benutzen. Im ersten Teil des Tutorials ist erklärt, wie Sie das machen können.

Zeichenauswahl und alternative Zeichen

Stellen Sie sich vor, Sie wollen ein Wort suchen und ersetzen, dass auf zwei unterschiedliche Arten geschrieben werden kann. Dafür wollen Sie aber nur einen Ausdruck verwenden. Wir nehmen einmal die Zeichenkombinationen "axa" und "aza". Wir benötigen also einen regulären Ausdruck, der sowohl ein "x" als auch ein "z" findet, dass von zwei "a" umgeben ist. Sie sehen diesen Ausdruck in Beispiel 1.

Beispiel 1

Suchen nach:   Ersetzen mit:    Original:        Nach Ersetzung:

a[zx]a         X                aza aaa axa      X aaa X

ab[cd]         X                abcd abc abd     Xd X X

[abc]          X                abcd abc abd     XXXd XXX XXd

[ab]+          X                abc aaa ababc    Xc X Xc

[ab]+c         X                abc aaa ababc    X aaa Xc

Die eckigen Klammern stellen eine Zeichenauswahl dar. Jedes Zeichen in dieser Auswahl kann danach vorkommen. In der ersten Zeile ergeben sich die beiden Möglichkeiten "aza" und "axa", in der zweiten Zeile "abc" und "abd". Von "abcd" wird demnach nur "abc" ersetzt und das "d" bleibt stehen.

In der dritten Zeile von Beispiel 1 haben wir nur eine Zeichenauswahl definiert ohne einen festen Buchstaben davor oder danach. Nun wird nach "a", "b" oder "c" gesucht und alle Vorkommnisse dieser drei Buchstaben werden ersetzt.

In der vierten Zeile von Beispiel 1 kombinieren wir eine Zeichenauswahl mit dem Plus Zeichen. Das Plus bedeutet: Das vorherige Zeichen muss mindestens einmal vorkommen und kann beliebig oft vorkommen. In diesem Fall ist das vorherige Zeichen entweder ein "a" oder ein "b". Gefunden werden Zeichenketten wir "aaaa", "bbbb" aber auch "ababbaab", denn das sich wiederholende Zeichen muss nicht zwangsläufig dasselbe sein.

Zuletzt hängen wir an das letzte Beispiel noch ein "c" an. Damit suchen wir nun nach einer Zeichenkette die mit "c" endet und in der vor dem "c" beliebig häufig ein "a" oder ein "b" oder Kombinationen davon vorkommen müssen.

Alternative Zeichenketten

Beispiel 2

Suchen nach:   Ersetzen mit:    Original:        Nach Ersetzung:

abc|def        X                abcd ef defg     Xd ef Xg

z(abc|def)     X                abcd ef zdefg    abcd ef Xg

In Beispiel 1 haben wir uns schon mit alternativen Zeichen beschäftigt, die innerhalb einer Zeichenauswahl stehen. Es geht aber auch anders. Ebenso steht das Metazeichen | für Alternativen. Im Beispiel 2 suchen wir mit dem regulären Ausdruck "abc|def" entweder nach "abc" oder nach "def" und ersetzen das, was wir gefunden haben mit einem "X". So können Sie auch ganze Bestandteile von Worten einfach als Alternative notieren. In der zweiten Zeile verwenden wir den Ausdruck "z(abc|def)". Dieser bedeutet: Wir suchen eine Zeichenkette, die mit z anfängt und danach kann entweder ein "abc" oder ein "def" kommen. Ersetzt wird hier also nicht das "abc" am Anfang, da davor kein "z" steht. Das "zdef" dagegen wird ersetzt. Mit der runden Klammer haben wir "abc|def" gruppiert und zusammengefasst.

Eckige und runde Klammern

In folgendem Beispiel wollen wir uns den Unterschied zwischen eckigen und runden Klammern genauer ansehen. Eckige Klammern bedeuten eine Auswahl von Zeichen, also ist jedes Zeichen innerhalb der eckigen Klammer eine Alternative zu den anderen. Runde Klammern dagegen gruppieren Zeichen. Stehen hier Zeichen nebeneinander, müssen Sie auch in dieser Reihenfolge vorkommen

Beispiel 3

Suchen nach:   Ersetzen mit:    Original:        Nach Ersetzung:

a(bc|de)       X                abcd ade ae      Xd X ae

a[bc|de]       X                abcd ade ae      Xcd Xe X

In Beispiel 3 stellen wir zwei Suchmuster gegenüber, einmal mit eckigen und einmal mit runden Klammern. Das Beispiel mit den runden Klammern bedeutet: Erst muss ein "a" kommen, danach entweder "bc" oder "de". Also werden "abc" und "ade" ersetzt.

Anders sieht es aus, wenn wir eckige Klammern benutzen. Nun bedeutet die durch | gekennzeichnete Alternative nicht mehr entweder "bc" oder "de" sondern "entweder ein Zeichen aus der Gruppe "bc" oder ein Zeichen aus der Gruppe "de". Gefunden werden also dieses Mal "ab" ("a" und ein Zeichen aus der ersten Gruppe), "ad" ("a" und ein Zeichen aus der zweiten Gruppe) und "ae" (ebenso "a" und ein Zeichen aus der zweiten Gruppe).

Zusammenfassung

  • Eckige Klammern definieren eine Zeichenauswahl. Jedes Zeichen in dieser Klammer kann vorkommen.
  • Mit dem Strich | könenn Sie alternative Zeichenketten voneinander abtrennen. Es reicht wenn eine der Alternativen zutreffend ist.
  • Eckige und runde Klammern sind nicht z verwechseln, das Sie etwas unterschiedliches bedeuten. Während eckige Klammern eine Auswahl definieren, gruppieren runde Klammern.

Lesen Sie weiter

 

© Stefan Trost - Die Verwendung dieses Tutorials, auch in Auszügen, ist nur nach vorheriger Genehmigung von Stefan Trost erlaubt. Sie können das Tutorial aber gerne verlinken.

 
  
 

Kommentare

Sind Sie der selben Meinung wie der Autor oder wollen Sie etwas ergänzen? Hier können Sie einen Kommentar hinterlassen.

Kommentar schreiben

Sie können zu diesem Artikel einen anonymen Kommentar hinterlassen. Möchten Sie unter Ihrem Namen schreiben, loggen Sie sich ein oder registrieren Sie sich.



Bisherige Kommentare

Zu diesem Artikel wurden bislang noch keine Kommentare abgegeben.