michilee: Reguläre Ausdrücke

Hallo Forum,
ich lerne zurzeit wieder, bzw. frische wieder Reguläre Ausdrücke auf:

Zitat:

Was ist an dem \ jetzt so besonders mitten in einer Zeichenkette?

Der Backslash dient als Escape-Zeichen und nimmt einem nachfolgenden Sonderzeichen seine Sonderbedeutung. Er erzwingt, dass das nachfolgende Zeichen einfach "wörtlich" genommen wird.

Mit \* könnte ich sagen, dass das * als Zeichen erkannt werden soll.

[a-z\*]
1. Heißt, alle Kleinbuchstaben von a bis z und das Zeichen *. Richtig?

Aber im folgenden Fall nimmt er das "d" ja nicht wörtlich:
[a-z\dABC]
Also, entweder alle Kleinbuchstaben von a-z, eine Zahl \d (digit) oder A, B, C.

2. Könnte man mir evtl. noch kleine Beispiele zu folgenden Begriffen geben:

  • Rückwärtsreferenz
  • Backtracking
  • Possessive Quantifiers?

3. Habe die Bedeutung von \i jetzt nicht mehr gefunden, um die äquivalententen Ausdrücke unten zu verstehen
/[^abc]/ <--> /((?i)[^abc])/ <-> /[^abc]/i

Vielen Dank, wünsche allen noch einen schönen Sonntag

Grüßchen

  1. Zitat:

    Was ist an dem \ jetzt so besonders mitten in einer Zeichenkette?
    Der Backslash dient als Escape-Zeichen und nimmt einem nachfolgenden Sonderzeichen seine Sonderbedeutung. Er erzwingt, dass das nachfolgende Zeichen einfach "wörtlich" genommen wird.

    Ich ergänze
    Ein Backslash gibt einem Buchstaben eine Sonderbedeutung
    \b \B \s \S \p{L} \P{L} \w \W \s \S \x15
    \A \Z \z
    \Q \E
    Sonderzeichen ausserhalb der REs behalten in REs ihre Gültigkeit
    \n \r \t

    In einer Zeichenklasse [] müssen nur folgende Zeichen maskiert werden, um ihnen die Sonderbedeutung zu nehmen.
    [[]] Matche die []
    [+-=] - ist ein Range-zeichen, muss also maskiert werden, wenn als Ziechen zu verwenden, mit ausnahme, wenn es das letzte Zeichen der Zeichenklasse ist.
    /[.]/ matcht wärtlich den Punkt
    /./  matcht wärtlich den Punkt
    /./ matcht irgend ein Zeichen ausser \n
    Ein Backslash muss immer escaped werden um ihn als literal zu matchen
    /\/
    /[\]/

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Hi Beat, vielen Dank

      Oki, habe fast alles verstanden, was du geschrieben hast.

      Ich ergänze
      Ein Backslash gibt einem Buchstaben eine Sonderbedeutung
      \b \B \s \S \p{L} \P{L} \w \W \s \S \x15
      \A \Z \z
      \Q \E

      Oki, entweder kann ich maskieren oder das danach als Sonderbedeutung nehmen.
      \d als Bsp. wären digits, also Zahlen.
      Was die oberen machen, müsste ich nachschlagen.

      Sonderzeichen ausserhalb der REs behalten in REs ihre Gültigkeit
      \n \r \t

      Das habe ich nicht ganz verstanden, wie außerhalb ihre Gültigkeit?

      Den Rest habe ich verstanden :-)

      Grüße