Regular Expression/Verknüpfungen: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
K Textersetzung - „z. B. “ durch „beispielsweise “ |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 31: | Zeile 31: | ||
==== Alternativen ==== | ==== Alternativen ==== | ||
Man kann alternative Ausdrücke mit dem | Man kann alternative Ausdrücke mit dem "<tt>'''|'''</tt>"-Symbol zulassen. | ||
"ABC|abc" bedeutet "ABC" oder "abc", aber beispielsweise nicht "Abc". | |||
==== Beispiele ==== | ==== Beispiele ==== | ||
Zeile 39: | Zeile 39: | ||
(a|b)* | (a|b)* | ||
* beliebig viele | * beliebig viele "a" und "b", einschließlich einer leeren Zeichenkette | ||
* | * "", "a", "b", "aa", "ab", "ba", "bb", "aaa", … | ||
ab*(c|ε) | ab*(c|ε) | ||
* ε = leer | * ε = leer | ||
* Zeichenketten beginnend mit | * Zeichenketten beginnend mit "a" | ||
* kein- oder mehrmals | * kein- oder mehrmals "b" | ||
* optional a "c": {"a", "ac", "ab", "abc", "abb", "abbc", ...} | * optional a "c": {"a", "ac", "ab", "abc", "abb", "abbc", ...} | ||
Zeile 58: | Zeile 58: | ||
* Diese Regeln lassen sich durch Klammern überschreiben | * Diese Regeln lassen sich durch Klammern überschreiben | ||
[[Kategorie: | [[Kategorie:Regular Expression]] |
Aktuelle Version vom 28. April 2025, 10:41 Uhr
Verknüpfungen
- Verknüpfung regulärer Ausdrücken
Mehrere reguläre Ausdrücke können durch Aneinanderfügen zusammengeführt werden. Ein solcher Ausdruck findet dann alle Zeichenketten, die aneinander gehängt zu dem jeweiligen Ausdruck passen.
Beispiel
"[Aa]lpha"
Es besteht aus den einzelnen Bausteinen
- "[Aa]"
- "l"
- "p"
- "h"
- "a"
Verknüpfung durch "oder"
Durch den Operator "|" lassen sich reguläre Ausdrücke mit einem "oder" verknüpfen.
Der daraus entstehende Ausdruck findet Zeichenketten, die entweder auf den einen oder den anderen Ausdruck passen.
Beispiel
"[Aa]lpha|[Bb]ravo"
- findet alle Textstücke "Alpha", "alpha", "Bravo" und "bravo"
- grep -E oder egrep
echo "--rot--gelb--" | sed 's/\(gelb\|rot\)/x/g' echo "--rot--gelb--" | sed 's/gelb\|rot/x/g'
- die runden Klammern und das oder-Zeichen "|" müssen escaped werden
- die runden Klammern können weggelassen werden
Alternativen
Man kann alternative Ausdrücke mit dem "|"-Symbol zulassen.
"ABC|abc" bedeutet "ABC" oder "abc", aber beispielsweise nicht "Abc".
Beispiele
a|b* * "a", "b", "bb", "bbb", …
(a|b)*
- beliebig viele "a" und "b", einschließlich einer leeren Zeichenkette
- "", "a", "b", "aa", "ab", "ba", "bb", "aaa", …
ab*(c|ε)
- ε = leer
- Zeichenketten beginnend mit "a"
- kein- oder mehrmals "b"
- optional a "c": {"a", "ac", "ab", "abc", "abb", "abbc", ...}
(0|(1(01*0)*1))*
- set of binary numbers that are multiples of 3: { ε, "0", "00", "11", "000", "011", "110", "0000", "0011", "0110", "1001", "1100", "1111", "00000", ... }
Rangfolge
- Rangfolge der Regeln
Ähnlich wie bei mathematischen Ausdrücken (Punkt- vor Strichrechnung) unterliegen die Verknüpfungsoperatoren einer Rangfolge:
- Wiederholungen kommen vor Verkettungen
- Verkettungen vor "oder"
- Diese Regeln lassen sich durch Klammern überschreiben