Was ist Regulärer Ausdruck (Regex)?

Eine Schreibweise, die ein Muster von Zeichenketten durch Kombination von Symbolen ausdrückt. . steht für ein beliebiges einzelnes Zeichen, * für null oder mehr Wiederholungen des vorangehenden Elements, ^ und $ für Anfang und Ende einer Zeile und [abc] für eines der Zeichen in den Klammern; reguläre Ausdrücke dienen zum Suchen und Ersetzen in Befehlen wie grep, sed und awk und in vielen Programmiersprachen. Die Basic Regular Expressions (BRE) von grep und die Extended Regular Expressions (grep -E, ERE), in denen +, ? und | direkt verwendbar sind, behandeln manche Symbole unterschiedlich. Sie sind etwas anderes als die Wildcards der Shell (etwa *.txt), und * hat dort eine andere Bedeutung.

Japanische Bezeichnung: 正規表現

„Regulärer Ausdruck (Regex)“ kommt in 4 Übungsfragen aus 2 Themen vor, z. B. Compiler, Grundlagen von Linux und der Kommandozeile.

Fachgebiet: Grundlagen von Linux und der Kommandozeile

Jetzt üben: Fragen zu Regulärer Ausdruck (Regex)

Welche Aufgabe hat die lexikalische Analyse eines Compilers?

  1. ASie prüft in Baumform, ob die Anweisungen des Programms der Grammatik der Sprache entsprechen
  2. BSie zerlegt die Zeichenfolge des Quellcodes in Token wie Bezeichner und Operatoren
  3. CSie prüft, ob die Typen von Variablen passen und ob undefinierte Namen verwendet werden
Antwort und Erläuterung anzeigen

Antwort: B. Sie zerlegt die Zeichenfolge des Quellcodes in Token wie Bezeichner und Operatoren

Die lexikalische Analyse ist die erste Phase des Compilers und zerlegt z. B. „count = count + 1;“ in die Token Bezeichner count, Symbol =, Bezeichner count, Symbol +, Zahl 1 und Symbol ;. Auch Leerraum und Kommentare werden hier entfernt. Die Regeln für Token lassen sich als reguläre Ausdrücke schreiben und daher mit endlichen Automaten schnell verarbeiten. Die Prüfung der Grammatik in Baumform ist Aufgabe der folgenden Syntaxanalyse, die Prüfung von Typen und Namen Aufgabe der semantischen Analyse.

Was wird häufig verwendet, um die Regeln zur Erkennung von Token in der lexikalischen Analyse auszudrücken?

  1. ARundungsregeln für Gleitkommazahlen
  2. BReguläre Ausdrücke und die sie verarbeitenden endlichen Automaten
  3. CErsetzungsregeln für Caches
Antwort und Erläuterung anzeigen

Antwort: B. Reguläre Ausdrücke und die sie verarbeitenden endlichen Automaten

Die Token-Arten lassen sich mit regulären Ausdrücken knapp schreiben, etwa Bezeichner als „beginnt mit einem Buchstaben, gefolgt von Buchstaben und Ziffern“ oder Zahl als „eine oder mehrere Ziffern“. Reguläre Ausdrücke lassen sich in endliche Automaten (Maschinen mit endlicher Zustandszahl) umwandeln, die allein durch Zustandsübergänge beim Lesen jedes Zeichens Token in einer zur Eingabelänge proportionalen Zeit herausschneiden. Daher werden lexikalische Analysatoren oft mit Werkzeugen gebaut, die sie automatisch aus regulären Ausdrücken erzeugen. Rundungs- und Cache-Regeln haben mit lexikalischer Analyse nichts zu tun.

„Regulärer Ausdruck (Regex)“ in den Erläuterungen

Fragen mit „Regulärer Ausdruck (Regex)“ (4)

  1. Welche Aufgabe hat die lexikalische Analyse eines Compilers?
  2. Was wird häufig verwendet, um die Regeln zur Erkennung von Token in der lexikalischen Analyse auszudrücken?
  3. Welche Grammatikart dient zur Beschreibung der Grammatik vieler Programmiersprachen und bildet die Grundlage der Syntaxanalyse?
  4. Welche Zeilen gibt das letzte grep in der obigen Sitzung aus?

Verwandte Begriffe

Lexikalische Analyse Syntaxanalyse (Parsing) grep cron Ein-/Ausgabeumleitung Git Hardlink Inode Pipe (|) Shell

Zur Glossarübersicht