Zum Inhalt springen

Informatik · Klasse 11–13 · aktualisiert

Reguläre Ausdrücke verstehen und anwenden

Du baust Suchmuster aus Zeichen und Wiederholungen und prüfst, ob ein Ausschnitt oder die ganze Eingabe passt.

0 von 9 Aufgaben gelöst

Reguläre Ausdrücke verstehen und anwenden

Kurz gesagt

Ein regulärer Ausdruck beschreibt, welche Zeichenfolgen zu einem Muster passen. Du kannst damit einen passenden Ausschnitt suchen oder verlangen, dass die ganze Eingabe passt.

Eine Zeichenkette ist eine Folge von Zeichen, etwa „K4“. Ein regulärer Ausdruck, kurz Regex, ist ein Muster für Zeichenketten. Wir nutzen die Schreibweise der Programmiersprache JavaScript. Du lernst, Muster zu bauen, Treffer zu begründen und ihre theoretische Grundlage zu erklären.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Termi das Ziel für dich ab.

4 Abschnitte

Wir schreiben JavaScript-Muster zwischen Schrägstrichen, etwa /uv/. Die Schrägstriche begrenzen das Muster und gehören nicht zum gesuchten Text. Wir verwenden zunächst keine Zusatzkennzeichen, auch Flags genannt. Solche Kennzeichen können das Suchverhalten ändern. Hier muss die Groß- und Kleinschreibung übereinstimmen. Alle Beispiel-Eingaben bestehen aus einer Zeile ohne Zeilenumbruch.

Ein Literal steht für das Zeichen selbst. Im Muster /uv/ sind „u“ und „v“ Literale: Gesucht ist die zusammenhängende Folge „uv“. Eine Zeichenklasse in eckigen Klammern steht dagegen für genau ein Zeichen aus einer Auswahl. [KR] erlaubt „K“ oder „R“. [0-9] erlaubt eine Ziffer von 0 bis 9; der Bindestrich bezeichnet hier den Bereich.

Ein Quantor gibt an, wie oft der direkt vorhergehende Baustein vorkommen darf. Er gilt für ein einzelnes Zeichen, eine Zeichenklasse oder eine geklammerte Gruppe. Die Tabelle zeigt die Schreibweisen am Zeichen „p“. Für null oder mehr Wiederholungen schreiben wir hier {0,}. Beim Sternquantor steht stattdessen das Sternzeichen unmittelbar hinter dem Baustein. Beide Schreibweisen sind gleichwertig und erlauben dieselben passenden Teilstücke.

Eine Gruppe fasst Bausteine mit runden Klammern zusammen. Bei /(te){2}/ wird die ganze Folge „te“ zweimal verlangt. Das Zeichen | trennt Alternativen: /(JA|NE)/ erlaubt die Folge „JA“ oder die Folge „NE“. Bei jeder Wiederholung einer Zeichenklasse darf ein anderes Zeichen gewählt werden. Auch bei einer wiederholten Gruppe mit Alternativen darf die Wahl wechseln: /(ha|ho){2}/ erlaubt etwa „haho“. Die Muster dieses Abschnitts suchen passende Teilstücke; davor und danach darf weiterer Text stehen.

Definition

Quantor

Ein Quantor legt die erlaubte Anzahl von Wiederholungen des vorhergehenden Bausteins fest. Eine Gruppe macht mehrere Zeichen zu einem gemeinsamen Baustein.

SchreibweiseBedeutung für das Zeichen „p“
/p{3}/Genau dreimal.
/p{2,4}/Mindestens zweimal, höchstens viermal.
/p{2,}/Mindestens zweimal, ohne feste Obergrenze.
/p?/Nullmal oder einmal; gleichwertig zu /p{0,1}/.
/p+/Mindestens einmal; gleichwertig zu /p{1,}/.
/p{0,}/Nullmal oder öfter; gleiche Bedeutung wie der Sternquantor.

Beispiel: Ein erfundenes Suchmuster zusammensetzen

  1. 1Gesucht ist „RA“ oder „SI“, danach genau zwei Ziffern und anschließend null oder mehr Wiederholungen von „zo“.
  2. 2Die Bausteine ergeben /(RA|SI)[0-9]{2}(zo){0,}/.
  3. 3„RA47zozo“ passt: „RA“, die Ziffern „47“ und zweimal „zo“ erfüllen die Bausteine.
  4. 4„SI08“ passt ebenfalls: Nach den beiden Ziffern wird „zo“ nullmal verwendet.

Teste dich

LeichtWelches Muster verlangt nach „WE“ oder „DU“ genau drei Ziffern?

Alles auf einen Blick

Regulärer Ausdruck

  • Bausteine

    Literale stehen für sich selbst; eine Zeichenklasse wählt pro Verwendung genau ein Zeichen.

  • Wiederholung

    Ein Quantor gilt für den vorhergehenden Baustein. {0,} ist gleichwertig zum Sternquantor.

  • Gruppen

    Runde Klammern fassen Bausteine zusammen; | trennt Alternativen.

  • Suchumfang

    Ohne Anker genügt ein Teiltreffer. Für unsere Gesamtprüfungen verwenden wir Anfangs- und Endanker ohne das Flag m.

  • Leerer Treffer

    Ein Muster wie /e{0,}/ kann passen, ohne ein Zeichen zu verbrauchen.

  • Theorie

    Reguläre Sprachen lassen sich durch theoretische reguläre Ausdrücke und endliche Automaten beschreiben; praktische Erweiterungen können darüber hinausgehen.

Musteraufgabe · Schritt für Schritt

Ein Suchmuster für erfundene Produktkennzeichen bauen

  1. 1Gesucht ist ein Teilstück aus „P“ oder „T“, danach zwei bis drei Ziffern und abschließend einem oder mehreren „w“.
  2. 2Die Anfangsauswahl schreiben wir als Gruppe: (P|T).
  3. 3Für zwei bis drei Ziffern ergänzen wir [0-9]{2,3}.
  4. 4Für mindestens ein abschließendes „w“ ergänzen wir w+.
  5. 5Zusammen ergibt das /(P|T)[0-9]{2,3}w+/.
  6. 6In „vorT604wwnach“ passt das Teilstück „T604ww“: „T“, drei Ziffern und zwei „w“ erfüllen die Bausteine.

Fehler finden

Prüfe die Suche nach einem erfundenen Kennzeichen In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Eine Zeichenklasse mit der Auswahl „U“ und „V“ trifft pro Verwendung aus ihrer Auswahl. Beim Muster /n{2,4}/ ist die Mindestanzahl unmittelbar aufeinanderfolgender „n“ . Die Suche ohne Anker nach „Q“ und genau zwei folgenden Ziffern findet in „vorQ59nach“ den Text .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Regulärer Ausdruck

LeichtIn welcher Eingabe findet /(ki|po){2}/ einen Treffer?
MittelWelche einzeilige Eingabe passt vollständig zum Muster (E|F)[0-9]{2}, das zwischen Anfangs- und Endanker steht, ohne Flags?
SchwerEin praktisches Suchmuster enthält eine Rückwärtsreferenz. Ist damit ein gleichwertiger endlicher Automat garantiert?

Weiterlesen in Informatik