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 Zeichena?
- 0 oder 1 aa*
- 0 oder beliebig viele a (Greedy)a+
- 1 oder beliebig viele a^
- am Anfang eines Strings$
- am Ende eines Strings|
- oder{}
- Anzahlena{3}
- genau drei Vorkommen von aa{3,}
- mindestens drei Vorkommen von aa{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 2024-11-18