Reguläre Ausdrücke

Oft kommt die Open Source-Bibliothek PCRE (Posix Comliant Regular Expressions) zum Einsatz, wenn reguläre Ausdrücke erkannt und verarbeitet werden sollen.

Die bekanntesten Regular Expression Patterns:

  • . - ein beliebiges Zeichen

  • a? - 0 oder 1 a

  • a* - 0 oder beliebig viele a (Greedy)

  • a+ - 1 oder beliebig viele a

  • ^ - am Anfang eines Strings

  • $ - am Ende eines Strings

  • | - oder

  • {} - Anzahlen

    • a{3} - genau drei Vorkommen von a

    • a{3,} - mindestens drei Vorkommen von a

    • a{3,6} - mindestens drei, maximal sechs Vorkommen von a

  • [] - Zeichenklassen

    • [a-z] - alle Kleinbuchstaben

    • [abc] - nur a, b oder c

    • [^abc] - alles ausser a, b oder c

  • () - Gruppierung

    • (a|b) - a oder b; der Match in der Klammer kann später per $1 referenziert werden

  • \ - Platzhalter (und gleichzeitig Quote):

    • \b - Wortgrenze

    • \d - Ziffern

    • \D - Nicht-Ziffern

    • \n - Newline, Line feed

    • \r - Carriage-Return

    • \s - Leerraum (Leerzeichen, Tabs, Newlines)

    • \S - Nicht-Leeraum

    • \t - Tab

    • \w - Wortzeichen

    • \W - Nicht-Wortzeichen

Achtung

Bash nutzt KEINE regulären Ausdrücke. Die Shell arbeitet mit Shell-Patterns, wobei ? genau ein beliebiges Zeichen und * null oder beliebig viele Zeichen findet. Ein *.txt findet daher alle Dateien, die genau auf .txt enden (der Punkt wird nicht interpretiert). Anders Tools wie grep, die über die genannte Bibliothek echte reguläre Ausdrücke auf der Kommandozeile unterstützen.

Tipp

https://regex101.com hilft, reguläre Ausdrücke u.a. für PCRE, Python und PHP zu entwickeln und auf ihre Performance hin zu untersuchen.

Patterns

GUID/UUID (8-4-4-4-12 Format)

[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}

Mail-Adresse

\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b

OID (SNMP)

^([1-9][0-9]{0,3}|0)(\.([1-9][0-9]{0,3}|0)){5,13}$

Built on 2022-06-03