Reguläre Ausdrücke

Beispiele

Regulärer Ausdruck Beschreibung
^Anfang Der Ausdruck "Anfang" muss zu Beginn der gesamten Zeichenkette vorkommen
^Anfang bis Ende$ Dieser Ausdruck "Anfang bis Ende" muss an den Anfang und dem Ende gleichzeitig grenzen
[0-9]?[0-9] Dieser Ausdruck lässt Zahlen von 1 - 99, mit und ohne führender Null zu. Das ? Bedeutet. Ein Zeichen kann ein mal oder kein mal vorkommen


Metazeichen

  • Zeichen die im regulären Ausdruck maskiert werden müssen

+ ? . * ^ $ ( ) [ ] { } | \

Treffer auf ein Zeichen

Tabelle - Zeichenbeispiele für reguläre Ausdrücke

Nr. Regulärer Ausdruck passt auf eine Zeichenkette, die (mindestens)
1. /a/ ein 'a' enthält
2. /\x61/ ein 'a' enthält – genau wie Beispiel (1.), allerdings in hexadezimaler Regexp-Notation
3. /\x{20AC}/ ein Euro-Symbol '€' enthält, ebenfalls in hexadezimaler Notation
4. /\N{EURO SIGN}/ ein Euro-Symbol '€' enthält, wobei die Unicode-Bezeichnung verwendet wird
5. /\077/ ein Fragezeichen enthält, in oktaler Notation
6. /\r/ ein Steuerzeichen für den Wagenrücklauf (carriage return) enthält
7. /\n/ ein Steuerzeichen für den Zeilenvorschub (line feed) enthält
8. /\t/ ein Steuerzeichen für den Tabulator enthält
9. /\f/ ein Steuerzeichen für den Seitenvorschub enthält
10. /\cK/ ein Steuerzeichen enthält, das mit Control+K erzeugt wird
11. /\e/ ein Escape-Zeichen enthält
12. /\a/ ein Steuerzeichen Bell (Glocke) enthält


Beispiele für Zeichenklassen

Metazeichen

- ] \ ^ / $

Nr. Regulärer Ausdruck passt auf eine Zeichenkette, die (mindestens)
13. /[ab]/ ein 'a' oder ein 'b' enthält
14. /[A-Z]/ einen Großbuchstaben enthält (passt nicht auf Umlaute)
15. /[0-9]/ eine Ziffer enthält
16. /\d/ eine Ziffer enthält - bis vor Perl 5.6 genau wie Beispiel (15.), seit Perl 5.6 locale-abhängig, kann also unter Umständen auch eine bengalische Vier (৪) oder eine arabische Fünf (٥) enthalten, die für Europäer eher wie eine Acht bzw. Null aussehen.
17. /\D/ ein Zeichen enthält, das keine Ziffer ist
18. /[-\d]/ eine Ziffer oder ein Minuszeichen enthält
19. /[[\]]/ eine eckige Klammer enthält (die schließende Klammer muss maskiert werden.)
20. /[a-zA-Z0-9_]/ ein Zeichen vom Typ Buchstabe (ohne Umlaute), vom Typ Ziffer oder einen Unterstrich enthält
21. /\w/ ein Zeichen vom Typ Buchstabe, vom Typ Ziffer oder einen Unterstrich enthält - (fast) genau wie Beispiel (20.); ob Umlaute erkannt werden können, hängt von der Systemkonfiguration ab
22. /\W/ ein Zeichen enthält, was weder Buchstabe noch Ziffer noch Unterstrich ist; ob Umlaute ausgeschlossen werden können, hängt von der Systemkonfiguration ab
23. /\s/ ein Leerzeichen oder ein Steuerzeichen aus Beispielen (6.-9.), also whitespace, enthält
24. /\S/ ein Zeichen enthält, das kein Leerzeichen oder Steuerzeichen aus Beispielen (6.-9.) ist
25. /[^äöüÄÖÜ]/ ein Zeichen enthält, was kein deutscher Umlaut (in der entsprechenden Zeichenkodierung) ist
26. /[^a-zA-Z]/ ein Zeichen enthält, welches kein Buchstabe ist (ohne Umlaute)
27. /[a-zA-Z[:digit:]_]/ ein Zeichen vom Typ Buchstabe (ohne Umlaute), vom Typ Ziffer oder einen Unterstrich enthält, genau wie Beispiel (20.), allerdings mit POSIX-Notation für Ziffern
28. /[[:^digit:]]/ ein Zeichen enthält, das keine Ziffer ist - genau wie Beispiel (19.), allerdings in POSIX-Notation
29. /\p{IsDigit}/ eine Ziffer in Unicode-Notation enthält - ähnlich wie Beispiel (16.), allerdings nicht locale-abhängig, sondern hierbei ist eine bengalische Vier immer enthalten
29. /\p{L}/ einen Buchstaben (engl. Letter) enthält - ähnlich wie Beispiel (21.), allerdings nicht locale-abhängig, sondern hierbei sind z.B. Umlaute immer enthalten
30. /\p{Devanagari}/ ein Zeichen der indischen Schrift Devanagari enthält
31. /./ ein beliebiges Zeichen, das kein Zeilenumbruch ist


POSIX-Norm

  • Zeichenklassen [:class:]
  • Klassen :
alpha, alnum, ascii, blank, cntrl, digit, graph, lower, print, punct, space, upper, word, xdigit
  • \p{} Unicode-Zeichenklassen

Zeichenketten

Nr. Regulärer Ausdruck Wirkung
1. /aus/ matcht 'aus' - auch in 'Haus' oder 'Mausi'
2. /a./ matcht 'ab' und 'an' (ein beliebiges Zeichen hinter 'a', außer \n)
3. /a[ul]s/ matcht 'aus' oder 'als' - auch in 'Haus', 'Mausi', 'Gralsuche' oder 'also'
4. /Ha.s/ matcht 'Haus' und 'Hans', aber keinen Teilstring von 'Hannes'
5. /Hans\b/ matcht 'Hans', aber nicht in 'Hansel' (Wortgrenze)
6. /\baus/ matcht 'aus' in 'auskratzen', aber nicht in 'Haus' (Wortgrenze)
7. /\baus\b/ matcht 'aus', aber nicht in 'Haus' und auch nicht 'auskratzen' (Wortgrenze)
8. /\baus\B/ matcht 'aus' in 'auskratzen', aber nicht in 'aus' und auch nicht in 'Haus' (Wortgrenze und Nicht-Wortgrenze)
9. /^Hans/ matcht 'Hans' nur am Anfang des zu durchsuchenden Bereichs, also z.B. nicht in 'Der Hans'.
10. /Hans$/ matcht 'Hans' nur am Ende des zu durchsuchenden Bereichs, wobei ein Newline-Zeichen noch Folgen darf.
11. /$Name/ interpretiert den Inhalt der Variable $Name als regulären Ausdruck
12. !/$Zahl/ das Ausrufezeichen '!' vor dem Suchparameter negiert ihn und matcht alles andere, das nicht diesem entspricht, z. B. gegeben @Zahl = (1, 2, 3, 4, 5) und mit grep (!/3/, @Zahl) gematcht und wieder zurück an @Zahl übergeben werden folgende Werte [1, 2, 4, 5]