Zum Inhalt springen

Regular Expression/Verknüpfungen: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „““ durch „"“
K Textersetzung - „„“ durch „"“
Zeile 31: Zeile 31:


==== Alternativen ====
==== Alternativen ====
Man kann alternative Ausdrücke mit dem <tt>'''|'''</tt>"-Symbol zulassen.
Man kann alternative Ausdrücke mit dem "<tt>'''|'''</tt>"-Symbol zulassen.


„ABC|abc" bedeutet „ABC" oder „abc", aber z.&nbsp;B.&nbsp; nicht „Abc".
"ABC|abc" bedeutet "ABC" oder "abc", aber z.&nbsp;B.&nbsp; nicht "Abc".


==== Beispiele ====
==== Beispiele ====
Zeile 39: Zeile 39:


  (a|b)*
  (a|b)*
* beliebig viele „a" und „b", einschließlich einer leeren Zeichenkette
* beliebig viele "a" und "b", einschließlich einer leeren Zeichenkette
* ", „a", „b", „aa", „ab", „ba", „bb", „aaa", …
* "", "a", "b", "aa", "ab", "ba", "bb", "aaa", …


  ab*(c|ε)
  ab*(c|ε)
* ε = leer
* ε = leer
* Zeichenketten beginnend mit „a"
* Zeichenketten beginnend mit "a"
* kein- oder mehrmals „b"
* kein- oder mehrmals "b"
* optional a "c": {"a", "ac", "ab", "abc", "abb", "abbc", ...}
* optional a "c": {"a", "ac", "ab", "abc", "abb", "abbc", ...}



Version vom 31. März 2025, 21:59 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 z. B.  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