Reguläre Ausdrücke in Perl (Summary)

## Zusammenfassung

- Einfache Suche
  - Die meisten Zeichen direkt angeben
  - Sonderzeichen für reguläre Ausdrücke mit Backslash versehen:

    > `. ? * + ^ $ | \ ( ) [ {` Klammersymbol

  - Weitere Sonderzeichen:

    > `\n` | neue Zeile
    > `\r` | Wagenrücklauf
    > `\f` | Seitenvorschub
    > `\t` | Tabulator
    > `\a` | Signalton
    > `\e` | Escape
    > `\000 - \377` | Oktalcode (ASCII)

  - Punkt ("`.`") steht für jedes Zeichen außer '`\n`' (Ausnahme: single line-Option s)

- Zeichenklassen
  - Sammlung von Symbolen in eckigen Klammern ("`[...]`")
  - Minuszeichen ("`-`") bildet Bereich (z.B. "`[a-z]`")
  - Zirkumflex ("`^`") am Anfang bedeutet "alle Zeichen außer ..."
  - "`\b`" bedeutet hier "Rückschritt" (Backspace)
  - Wichtige Klassen:

    > Zeichen | Entsprechung | Bedeutung
    > --- | --- | ---
    > `\d` | `[0-9]` | Ziffer
    > `\D` | `[^0-9]` | Gegenstück zu `\d`
    > `\w` | `[a-zA-Z_0-9]` | alphanumerisches Zeichen
    > `\W` | `[^a-zA-Z_0-9]` | Gegenstück zu `\w`
    > `\s` | `[ \t\n\f\r]` | Leerzeichen
    > `\S` | `[^ \t\n\f\r]` | Gegenstück zu `\s`

- Zeichenwiederholung
  - Suche nach wiederholten Symbolen (maximale Länge)

    > Ausdruck | Bedeutung
    > --- | ---
    > `{`n`,`m`}` | mind.n-mal, höchstens m-mal
    > `{`n`}` | genau n-mal
    > `{`n`,}` | mindestens n-mal
    > `?` | höchstens einmal
    > `+` | mindestens einmal
    > `*` | beliebig oft

  - Suche nach kürzester Lösung: Anhängen eines Fragezeichens ("`?`") an obige Ausdrücke

- Klammerung
  - Gliederung durch runde Klammern ("`(...)`") mit Nebeneffekt: zur n-ten Klammer (gezählt nach öffnenden) passender Substring in `\`n (Verwendung innerhalb) bzw. `$`n (Verwendung außerhalb)
  - Klammerung ohne Nebeneffekt: "`(?:...)`"

- Alternativen
  - "ODER"-Verknüpfung mehrerer Teilausdrücke durch pipe-Symbol ("`|`")

- Ankerpunkte
  - Zusatzbedingungen für die Position von Mustern

    > Ausdruck | Bedeutung
    > --- | ---
    > `\A` | Beginn der Zeichenkette
    > `\Z` | Ende der Zeichenkette
    > `^` | Beginn des Strings (Zeilenanfang bei Option m)
    > `$` | Ende des Strings (Zeilenende bei Option m)
    > `\b` | Wortgrenze (zwischen `\w` und `\W`)
    > `\B` | Gegenstück zu `\b`

- Vorausschauende Suche
  - Suche nach Substring, der von bestimmtem Ausdruck gefolgt wird: "`(?=...)`"
  - Suche nach Substring, auf den bestimmter Ausdruck nicht folgen darf: "`(?!...)`"

- Kommentare
  - Einfügen von Kommentaren möglich in "`(?#...)`"

- Aktivierung von Optionen
  - Setzen von Optionen innerhalb des regulären Ausdrucks: "`(?`Option(en)`)`"

Autor: Eike Grote | Letzte Änderung: 03.11.2004