Was für Ausdrücke ... Regular Expressions
Reguläre Ausdrücke

Reguläre Ausdrücke

  • Eingeführt 1956 von S. C. Kleene
  • Werden dann verwendet, wenn man die Form eines Strings beschreiben will - sie beschreiben Klassen von Strings: einfacher, die Zahlen von 0 bis unendlich durch eine Beschreibung zu definieren, also durch Aufzählung der vorkommenden Elemente, anstatt jede Zahl einzeln aufzuzählen
  • Reguläre Ausdrücke sind also dazu da, diese Klassen zu beschreiben
  • Pass auf Zeichenkette, wenn diese in der von der Regulären Ausnahme umschriebenen Klasse enthalten ist
  • Verwendung: auswählen eines bestimmten Abschnittes aus einem String
  • bestehen aus null oder mehreren Alternativen, getrennt durch Hochkommata, |, ?, "
  • passt, wenn eine Alternative passt
      Alternativen
    • bestehen aus null oder mehreren Teilen
    • pass, wenn die Teile in ihrer Reihenfolge passen
        Teile
      • sind atomare Elemente mit einem eventuellen Iterator (*,+) oder einer Option (?)
          Atomare Teile
        • sind geklammerte reguläre Ausdrücke
        • in "[" und "]" geklammerte Teilbereiche , ".", "^", "$" oder Einzelzeichen (eventuell mit "\" vorher)
  • Wenn ein regulärer Ausdruck auf mehrere Stellen im Text passt, wird immer die erste Stelle genutzt
  • In Alternativen hat der linke Zweig Vorrang vor dem rechten
  • In Iterationen oder Optionen hat der längste Teil Vorrang
  • Sequenzen von Teilausdrücken werden von links nach rechts ausgewertet

  • Praxis: in Hochkommata oder "", wenn Leerzeichen oder Zeichen beinhaltend, die von Shell ersetzt werden:
    • Strings
    • Metazeichen (Sonderzeichen):
      • ^ - Zeilenbeginn
      • $ - Zeilenende
      • . - beliebiges Zeichen
      • \ - Aufheben der Sonderbedeutung des nachfolgenden Zeichens
      • ? - Muster ist vorhanden oder nicht
      • * - beliebig viele Aneinanderreihungen eines Musters (auch Null)
      • + - beliebig viele Aneinanderreihungen eines Musters (mindestens eine)
      • < - Wortanfang
      • > - Wortende
    • Character Classes (in Hochkommata):
      • [aX] - Zeilen, die mindestens eines der Zeichen in der Klammer beinhalten
      • [A-Z] - Zeilen, die mindestens Großbuchstaben beinhalten, für Kleinbuchstaben analog
      • [^A-Z] - Zeilen, die keinen Großbuchstaben beinhalteen - ^ ist Verneinung
      • ^[A-Z]*$ - Zeilen, die leer sind oder nur Großbuchstaben beinhalten - * ist Zeichen für Wiederholung, auch kein Auftreten ist Wiederholung
      • ^[A-Z]+$ - Zeilen, die nur Großbuchstaben beinhalten - + ist Zeichen für minimal eine Wiederholung
      • \{2,5\} 2 bis 5 Wiederholungen, \{n\} n Wiederholungen
      • muster1|muster2 eines von beiden Mustern
      • \(  \) - Zusammenfassen mehrerer Muster zu einem
Copyright Christina Scholz, Monika Kapper, Mario Pehle - 2002
Copyleft auch Christina Scholz, Monika Kapper, Mario Pehle - 2002