Formale Sprachen und Automaten

Größe: px
Ab Seite anzeigen:

Download "Formale Sprachen und Automaten"

Transkript

1 Formale Sprachen und Automaten Kapitel 3: Regular Expressions Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012

2 Kapitel 3 Regular Expressions Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Inhalt 2/62

3 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Ein Anwendungsszenario für regular expressions 3/62

4 Einleitung Ein Regular Expression oder kurz Regex bietet die Möglichkeit, eine (nicht zu komplizierte) formale Sprache kompakt zu spezifizieren. Eine Reihe von (Unix-)Werkzeugen und Programmiersprachen erfordern oder erlauben zumindest die Benutzung von Regexes. wörtlich: regulärer Ausdruck, aber allgemeiner als das in Kapitel 2 eingeführte Konzept. hier: keine vollständige Definition von Regex, aber Schritt für Schritt wesentliche Aspekte Vorläufig denke man bei Regex einfach an regulärer Ausdruck. Je nach Werkzeug variieren die konkrete Syntax und/oder die Mächtigkeit der zur Verfügung stehenden Konzepte. hier: grundsätzliche, allgemein gültige Fakten Ein Anwendungsszenario für regular expressions 4/62

5 Informationen die üblichen Quellen (man pages, etc.) Jeffrey E. F. Friedl: Mastering Regular Expressions David Mertz: programming/regular_expressions.html Philip Hazel: Dokumentation von java.util.regex Ein Anwendungsszenario für regular expressions 5/62

6 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Regular expressions bei egrep 6/62

7 3.1 Anwendungsszenario Gegeben: ein Wort w und ein Regex R Frage: Enthält w ein Teilwort, das durch R beschrieben wird? kurz: Matcht R in w? Beispiel: R = matcht w = , denn w enthält (sogar zweimal) das Teilwort 001. Programm egrep Argumente: Regex R und ein (oder mehrere) Dateiname(n) Für jede Zeile der Datei(en) wird geprüft, ob sie als Wort von R gematcht wird. Solche Zeilen werden ausgegeben (oder weiterverarbeitet), alle anderen nicht. Regular expressions bei egrep 7/62

8 3.2 Beispiele bei egrep: Warnung Es gibt nicht die eine Implementierung von egrep. Details sind verschieden: Dokumentation lesen! Wir beschränken uns auf allgemein Gültiges. Regular expressions bei egrep 8/62

9 Beispieldatei 0. huo 1. hugo Jede Zeile beginnt mit einer Ziffer und endet mit einem o. Regular expressions bei egrep 9/62

10 Typischer Aufruf von egrep > egrep hugo liste erstes Argument: Regex weitere Argumente: Dateinamen Achtung: Um zu verhindern, dass die Shell Zeichen wie z. B. * interpretiert, wird der ganze Regex in single quotes... eingeschlossen, die nicht zum Regex gehören. Regular expressions bei egrep 10/62

11 3.1 Beispiele 0. huo 1. hugo > egrep hugo liste Regular expressions bei egrep 11/62

12 3.1 Beispiele 0. huo 1. hugo > egrep hugo liste 1. hugo Regular expressions bei egrep 11/62

13 3.1 Beispiele 0. huo 1. hugo > egrep uo ggg liste Regular expressions bei egrep 12/62

14 3.1 Beispiele 0. huo 1. hugo > egrep uo ggg liste 0. huo Regular expressions bei egrep 12/62

15 3.1 Beispiele 0. huo 1. hugo > egrep ggg* liste Regular expressions bei egrep 13/62

16 3.1 Beispiele 0. huo 1. hugo > egrep ggg* liste Regular expressions bei egrep 13/62

17 3.1 Beispiele 0. huo 1. hugo > egrep gg(g)* liste Regular expressions bei egrep 14/62

18 3.1 Beispiele 0. huo 1. hugo > egrep gg(g)* liste Regular expressions bei egrep 14/62

19 3.1 Beispiele 0. huo 1. hugo > egrep (gg)* liste Regular expressions bei egrep 15/62

20 3.1 Beispiele 0. huo 1. hugo > egrep (gg)* liste 0. huo 1. hugo Regular expressions bei egrep 15/62

21 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Bequemere Notation für reguläre Ausdrücke 16/62

22 3.3 Abkürzungen Ist R ein regulärer Ausdruck, so schreibt man ε statt O/*, R+ statt RR*, R* statt R * und R+ statt R + R? statt R ε Bequemere Notation für reguläre Ausdrücke 17/62

23 3.4 Beispiele 0. huo 1. hugo > egrep g+ liste Bequemere Notation für reguläre Ausdrücke 18/62

24 3.4 Beispiele 0. huo 1. hugo > egrep g+ liste 1. hugo Bequemere Notation für reguläre Ausdrücke 18/62

25 3.4 Beispiele 0. huo 1. hugo > egrep g? liste Bequemere Notation für reguläre Ausdrücke 19/62

26 3.4 Beispiele 0. huo 1. hugo > egrep g? liste 0. huo 1. hugo Bequemere Notation für reguläre Ausdrücke 19/62

27 3.5 Zeichenklassen Für einzelne Zeichen x 1,, x k schreibt man statt x 1 x k kürzer [x 1 x k ]. Bei naheliegender Reihenfolge (Alphabet!) auch noch kürzer [x 1 -x k ]. Bequemere Notation für reguläre Ausdrücke 20/62

28 3.6 Beispiel für Zeichenklassen Beispiel: [a-z] statt a b c d e f g h i j k l m n o p q r s t u v w x y z. Beispiel: Variablennamen (ohne Unterstriche) in C [a-za-z][a-za-z0-9]* Bequemere Notation für reguläre Ausdrücke 21/62

29 3.7 Beispiele für Zeichenklassen 0. huo 1. hugo > egrep [defg] liste Bequemere Notation für reguläre Ausdrücke 22/62

30 3.7 Beispiele für Zeichenklassen 0. huo 1. hugo > egrep [defg] liste 1. hugo Bequemere Notation für reguläre Ausdrücke 22/62

31 3.7 Beispiele für Zeichenklassen 0. huo 1. hugo > egrep [d-g] liste Bequemere Notation für reguläre Ausdrücke 23/62

32 3.7 Beispiele für Zeichenklassen 0. huo 1. hugo > egrep [d-g] liste 1. hugo Bequemere Notation für reguläre Ausdrücke 23/62

33 3.8 Negierte Zeichenklassen Angabe der ausgeschlossenen Zeichen Man schreibt [^x 1 x k ] für die Menge aller Zeichen, ausgenommen x 1,, x k. Bequemere Notation für reguläre Ausdrücke 24/62

34 3.9 Beispiel für eine negierte Zeichenklasse 0. huo 1. hugo > egrep [^1234hugo. ] liste Bequemere Notation für reguläre Ausdrücke 25/62

35 3.9 Beispiel für eine negierte Zeichenklasse 0. huo 1. hugo > egrep [^1234hugo. ] liste 0. huo Bequemere Notation für reguläre Ausdrücke 25/62

36 3.10 Wiederholungshäufigkeiten Es seien x und y nichtnegative ganze Zahlen mit x y. R{x} steht für (R) (R). }{{} x mal R{x,} steht für R{x}R*. R{x, y} steht für (R) (R) (R?) (R?). }{{}}{{} x mal y x mal Bequemere Notation für reguläre Ausdrücke 26/62

37 Beispiele ε ist äquivalent zu R{0} R ist äquivalent zu R{1} R* ist äquivalent zu R{0,} R+ ist äquivalent zu R{1,} R? ist äquivalent zu R{0,1} Bequemere Notation für reguläre Ausdrücke 27/62

38 3.11 Beispiele für Wiederholungshäufigkeiten 0. huo 1. hugo > egrep [oguh]{5,} liste Bequemere Notation für reguläre Ausdrücke 28/62

39 3.11 Beispiele für Wiederholungshäufigkeiten 0. huo 1. hugo > egrep [oguh]{5,} liste Bequemere Notation für reguläre Ausdrücke 28/62

40 3.11 Beispiele für Wiederholungshäufigkeiten 0. huo 1. hugo > egrep [ouh]{5,} liste Bequemere Notation für reguläre Ausdrücke 29/62

41 3.11 Beispiele für Wiederholungshäufigkeiten 0. huo 1. hugo > egrep [ouh]{5,} liste Bequemere Notation für reguläre Ausdrücke 29/62

42 3.11 Beispiele für Wiederholungshäufigkeiten 0. huo 1. hugo > egrep [ogh]{5,} liste Bequemere Notation für reguläre Ausdrücke 30/62

43 3.11 Beispiele für Wiederholungshäufigkeiten 0. huo 1. hugo > egrep [ogh]{5,} liste Bequemere Notation für reguläre Ausdrücke 30/62

44 3.12 Punkt Ein einzelner Punkt. steht für ein x-beliebiges Zeichen. Bequemere Notation für reguläre Ausdrücke 31/62

45 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Metazeichen in Zeichenklassen 32/62

46 3.13 Problem Wie notiert man Metazeichen, also - ^ [ ] als normale Zeichen in einer Zeichenklasse? Metazeichen in Zeichenklassen 33/62

47 3.14 Lösung (jedenfalls manchmal) Mitunter gelten die folgenden Regeln: Ein - unmittelbar nach [ bzw. nach [^ steht für sich Ein ^ nicht unmittelbar nach [ steht für sich Ein ] unmittelbar nach [ bzw. nach [^ steht für sich Ein [ unmittelbar nach [ bzw. nach rx[n steht für sich Metazeichen in Zeichenklassen 34/62

48 3.15 Beispiele für Metazeichen in Zeichenklassen Die Datei klammern enthalte zwei Zeilen mit jeweils einer Klammer als einzigem Zeichen: [ ] > egrep [[] klammern Metazeichen in Zeichenklassen 35/62

49 3.15 Beispiele für Metazeichen in Zeichenklassen Die Datei klammern enthalte zwei Zeilen mit jeweils einer Klammer als einzigem Zeichen: [ ] > egrep [[] klammern [ Metazeichen in Zeichenklassen 35/62

50 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep []] klammern Metazeichen in Zeichenklassen 36/62

51 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep []] klammern ] Metazeichen in Zeichenklassen 36/62

52 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep [^[] klammern Metazeichen in Zeichenklassen 37/62

53 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep [^[] klammern ] Metazeichen in Zeichenklassen 37/62

54 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep [^]] klammern Metazeichen in Zeichenklassen 38/62

55 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep [^]] klammern [ Metazeichen in Zeichenklassen 38/62

56 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep [^^] klammern Metazeichen in Zeichenklassen 39/62

57 3.15 Beispiele für Metazeichen in Zeichenklassen [ ] > egrep [^^] klammern [ ] Metazeichen in Zeichenklassen 39/62

58 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Anker 40/62

59 3.16 Problem Gesucht: Matches, die am Anfang der untersuchten Zeichenkette beginnen und/oder am Ende der Zeichenkette enden. Festlegung: Der Anker für den Zeichenkettenanfang ist das ^. Der Anker für das Zeichenkettenende ist das $. Ein Ankersymbol matcht nicht das entsprechende Symbol in der Eingabe, sondern das leere Wort an einer ganz bestimmten Stelle in der Eingabe. Anker 41/62

60 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ugg liste Anker 42/62

61 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ugg liste Anker 42/62

62 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ugg$ liste Anker 43/62

63 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ugg$ liste Anker 43/62

64 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ^ugg liste Anker 44/62

65 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ^ugg liste Anker 44/62

66 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ggo$ liste Anker 45/62

67 3.17 Beispiele für Anker 0. huo 1. hugo > egrep ggo$ liste Anker 45/62

68 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Gruppierungen und was sie matchen 46/62

69 Problem Bisher nur die Frage: Matcht ein Regex R in einem Wort w (oder nicht)? Nun die Frage: Matcht ein Regex R in einem Wort w, und wenn ja, wo? Gruppierungen und was sie matchen 47/62

70 3.18 Beispiele Im Allgemeinen mehrere Stellen, an denen gematcht wird: R = aa bb und w = _aa_bb_ Wird aa gematcht oder bb? R = bb* und w = abbbbc Wird nur ein b gematcht, oder 2 b oder 3 oder 4? R = b bbb und w = abbbc Wird nur b gematcht oder bbb? Gruppierungen und was sie matchen 48/62

71 3.19 Regel 1: Position des gematchten Textes 1. Ein weiter vorne in der Zeichenkette beginnender exakter Match wird einem weiter hinter beginnenden immer bevorzugt. Diese Regel ist so für (nahezu?) alle Werkzeuge, die mit Regexes umgehen, gültig. Gruppierungen und was sie matchen 49/62

72 3.20 Regel 2: Länge des gematchten Textes Hier gibt es deutliche Unterschiede; verschiedene Werkzeuge implementieren verschiedene Spezifikationen. 2a. POSIX Spezifikation: Bei gleichem Startpunkt in der Zeichenkette wird ein längerer Match einem kürzeren immer bevorzugt. 2b. Bei einigen anderen Werkzeugen (z. B. Perl): kompliziertere Festlegung des gematchten Textes, dafür einfachere und schnelle Verfahren. Gruppierungen und was sie matchen 50/62

73 3.21 Beispiele 1. R = aa bb und w = _aa_bb_ Regel 1: das aa wird gematcht und nicht das bb 2. R = bb aa und w = _aa_bb_ Regel 1: das aa wird gematcht und nicht das bb 3. R = bb* und w = abbbbc Regel 2a: das bbbb wird gematcht in diesem Fall matcht z. B. auch Perl noch bbbb 4. R =.* und w beliebig Es wird alles gematcht. Kompliziertere Beispiele kommen gleich. Gruppierungen und was sie matchen 51/62

74 3.22 Gruppierungen Sinnvolle Teilausdrücke können durch Klammerung mit ( und ) zu einem Unterausdruck zu gruppieren werden. Gruppen dürfen geschachtelt sein. Manchmal gibt es Implementierungsschranken bei der Anzahl von Gruppen insgesamt oder bei der Schachtelungstiefe. Vereinbarung: Gruppe 0 ist der gesamte Regex, auch wenn nicht geklammert wurde. Im Folgenden wird stets angenommen, dass der gesamte Regex nicht geklammert ist. Die Nummern der weiteren Gruppen ergeben sich durch Zählen der öffnenden Klammern bis zur interessierenden Gruppe inkl. Gruppierungen und was sie matchen 52/62

75 3.23 Beispiele für Gruppierungen R = (bb)c(bb) und w = zzbbcbbz: zzbbcbbz R = (bb)c*(bb) und w = zzbbcbbzzzbbcccbb: zzbbcbbzzzbbcccbb Gruppierungen und was sie matchen 53/62

76 3.24 Beispiel für Gruppierungen R = (.*)(.*) und w = abcdefg Annahme: POSIX-Regeln Gruppierungen und was sie matchen 54/62

77 3.24 Beispiel für Gruppierungen R = (.*)(.*) und w = abcdefg Annahme: POSIX-Regeln abcdefg 1 0 Gruppierungen und was sie matchen 54/62

78 3.24 Beispiel für Gruppierungen R = (.*)(.*) und w = abcdefg Annahme: POSIX-Regeln abcdefg 1 0 Die zweite Gruppe matcht nichts, weil die erste ein möglichst langes Teilwort matcht und nichts übrig lässt. Gruppierungen und was sie matchen 54/62

79 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Rückwärtsverweise 55/62

80 3.25 Rückwärtsverweise (engl. back references) erweitern die Möglichkeiten von Regexes deutlich. Nachdem Gruppe i abeschlossen ist, steht das von Gruppe i gematcht wurde. Bei manchen Werkzeugen sind nur einstellige Gruppennummern zulässig. i für das Teilwort, / Rückwärtsverweise 56/62

81 3.26 Beispiel R = (abc xyz) / 1 Rückwärtsverweise 57/62

82 3.26 Beispiel R = (abc xyz) 1 matcht abcabc / Rückwärtsverweise 57/62

83 3.26 Beispiel R = (abc xyz) 1 matcht abcabc matcht xyzxyz / Rückwärtsverweise 57/62

84 3.26 Beispiel R = (abc xyz) 1 matcht abcabc matcht xyzxyz matcht nicht abcxyz / Rückwärtsverweise 57/62

85 3.26 Beispiel R = (abc xyz) 1 matcht abcabc matcht xyzxyz matcht nicht abcxyz / Beachte: Unterschied zu (abc xyz)(abc xyz)!!! Rückwärtsverweise 57/62

86 3.27 Beispiel für Rückwärtsverweise 0. huo 1. hugo 4. huggggo 5. hugggggo 6. huggggggo 7. hugggggggo 8. huggggggggo > egrep ((gg)+)\1 liste2 Rückwärtsverweise 58/62

87 3.27 Beispiel für Rückwärtsverweise 0. huo 1. hugo 4. huggggo 5. hugggggo 6. huggggggo 7. hugggggggo 8. huggggggggo > egrep ((gg)+)\1 liste2 4. huggggo 5. hugggggo 6. huggggggo 7. hugggggggo 8. huggggggggo Rückwärtsverweise 58/62

88 3.27 Beispiel für Rückwärtsverweise 0. huo 1. hugo 4. huggggo 5. hugggggo 6. huggggggo 7. hugggggggo 8. huggggggggo > egrep u((gg)+)\1o liste2 Rückwärtsverweise 59/62

89 3.27 Beispiel für Rückwärtsverweise 0. huo 1. hugo 4. huggggo 5. hugggggo 6. huggggggo 7. hugggggggo 8. huggggggggo > egrep u((gg)+)\1o liste2 4. huggggo 8. huggggggggo Rückwärtsverweise 59/62

90 3.28 Beispiel für Rückwärtsverweise R = (.*).*( / 1) und w = abcxabca Aufgrund der ersten Regel ist klar, dass der Match auf jeden Fall mit dem ersten Symbol des Wortes beginnt. Aber dann? Rückwärtsverweise 60/62

91 3.28 Beispiel für Rückwärtsverweise R = (.*).*( / 1) und w = abcxabca Aufgrund der ersten Regel ist klar, dass der Match auf jeden Fall mit dem ersten Symbol des Wortes beginnt. Aber dann? Unter anderem folgende Möglichkeiten: Die erste Gruppe ist maximal gefräßig und matcht abc. Damit ist der Rest des Matches eindeutig festgelegt: Rückwärtsverweise 60/62

92 3.28 Beispiel für Rückwärtsverweise R = (.*).*( / 1) und w = abcxabca Aufgrund der ersten Regel ist klar, dass der Match auf jeden Fall mit dem ersten Symbol des Wortes beginnt. Aber dann? Unter anderem folgende Möglichkeiten: Die erste Gruppe ist maximal gefräßig und matcht abc. Damit ist der Rest des Matches eindeutig festgelegt: abcxabca Rückwärtsverweise 60/62

93 3.28 Beispiel für Rückwärtsverweise R = (.*).*( 1) und w = abcxabca / Aufgrund der ersten Regel ist klar, dass der Match auf jeden Fall mit dem ersten Symbol des Wortes beginnt. Aber dann? Unter anderem folgende Möglichkeiten: Die erste Gruppe ist maximal gefräßig und matcht abc. Damit ist der Rest des Matches eindeutig festgelegt: abcxabca Die erste Gruppe matcht a,.* ist maximal gefräßig und der Rückwärtsverweis matcht erst am Wortende: Rückwärtsverweise 60/62

94 3.28 Beispiel für Rückwärtsverweise R = (.*).*( 1) und w = abcxabca / Aufgrund der ersten Regel ist klar, dass der Match auf jeden Fall mit dem ersten Symbol des Wortes beginnt. Aber dann? Unter anderem folgende Möglichkeiten: Die erste Gruppe ist maximal gefräßig und matcht abc. Damit ist der Rest des Matches eindeutig festgelegt: abcxabca Die erste Gruppe matcht a,.* ist maximal gefräßig und der Rückwärtsverweis matcht erst am Wortende: abcxabca Rückwärtsverweise 60/62

95 Ein Anwendungsszenario für regular expressions Regular expressions bei egrep Bequemere Notation für reguläre Ausdrücke Metazeichen in Zeichenklassen Anker Gruppierungen und was sie matchen Rückwärtsverweise Verwendung von Metazeichen als reguläre Zeichen Verwendung von Metazeichen als reguläre Zeichen 61/62

96 3.29 Symbole O/, (, ), und * haben eine besondere Bedeutung Außerhalb von Zeichenklassen außerdem zumindest., +,?, [, ], { und } sogenannte Metazeichen Problem: Verwendung als Literal? Regel: Um Metazeichen auch als Literale benutzbar zu machen, muss ihnen ein Backslash vorangestellt werden. / Verwendung von Metazeichen als reguläre Zeichen 62/62

18.09.2010 / Software Freedom Day

18.09.2010 / Software Freedom Day 18.09.2010 / Software Freedom Day xkcd Fortsetzung... Grundlegendes Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann.

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten

Mehr

Empfehlenswerte Referenzen

Empfehlenswerte Referenzen Wenn Google etwas nicht finden kann, fragen sie Jack Bauer. ("Fakten über Jack Bauer") Inhalt Empfehlenswerte Referenzen...1 0 Wozu reguläre Ausdrücke?...1 1 Die Elemente regulärer Ausdrücke...2 2 Ein

Mehr

1.103 Regular Expressions - Reguläre Ausdrücke

1.103 Regular Expressions - Reguläre Ausdrücke Copyright ( ) 2009 by M.Peichl. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/de/

Mehr

6 F O R M A L E S P R A C H E N. 6.1 formale sprachen

6 F O R M A L E S P R A C H E N. 6.1 formale sprachen 6.1 formale sprachen 6 F O R M A L E S P R A C H E N Eine natürliche Sprache umfasst mehrere Aspekte, z. B. Aussprache und Stil, also z. B. Wortwahl und Satzbau. Dafür ist es auch notwendig zu wissen,

Mehr

Regular Expressions. Daniel Lutz Was ist eine Regular Expression?

Regular Expressions. Daniel Lutz Was ist eine Regular Expression? Regular Expressions Daniel Lutz 12.11.2003 1 Was ist eine Regular Expression? Ausdruck, der ein Textfragment beschreibt Eine Regular Expression passt zu einem Textfragment, wenn das Textfragment

Mehr

Reguläre Ausdrücke - eine Einführung -

Reguläre Ausdrücke - eine Einführung - Ziel Reguläre Ausdrücke - eine Einführung - Andreas Romeyke Leipzig, Oktober/November 2002 Diese Präsentation ist eine kurze Einführung in die Welt der regulären Ausdrücke mit Schwerpunkt Perl. Die Präsentation

Mehr

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q,

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, Wiederholung Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, einem Anfangszustand q 0 Q, einer Menge von Endzuständen Q E Q, einer

Mehr

Theoretische Informatik. Reguläre Sprachen und Automaten

Theoretische Informatik. Reguläre Sprachen und Automaten Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante

Mehr

Grundbegriffe der Informatik Tutorium 2

Grundbegriffe der Informatik Tutorium 2 Grundbegriffe der Informatik Tutorium 2 Tutorium Nr. 32 Philipp Oppermann 13. November 2013 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13 Webengineering Reguläre Ausdrücke Marcel Vilas 1 DHBW - Stuttgart 1 RegExp - Allgemein Muster, die eine Menge von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln beschreiben Werden oft als Suchmuster

Mehr

Reguläre Ausdrücke mit Java

Reguläre Ausdrücke mit Java Reguläre Ausdrücke mit Java Johannes Dyck, Thomas Schulz Projektseminar www.prominentpeople.info Gliederung 2 1. Grundlagen von regulären Ausdrücken 1. Aufbau 2. Zeichenklassen 3. Metazeichen 4. Quantoren

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

Dateisystem 2, Suchen & Finden

Dateisystem 2, Suchen & Finden Dateisystem 2, Suchen & Finden Linux-Kurs der Unix-AG Benjamin Eberle 15. Januar 2015 ln ln ( link ) legt Verknüpfungen an, Verwendung wie cp ohne Optionen wird ein zweiter Name für die gleiche Datei erzeugt

Mehr

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler Formale Sprachen Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen Rudolf Freund, Marian Kogler (http://xkcd.com/208) Gültige Adressen: Favoritenstraße 9, 1040 Wien Reumannplatz

Mehr

Sebastian Harl. 03. Oktober 2008

Sebastian Harl. 03. Oktober 2008 Reguläre Ausdrücke Sebastian Harl LUSC Workshop Weekend 2008 03. Oktober 2008 (?:[a-z0-9!#$%& *+/=?^_ { }~-]+(?:\.[a-z0-9!#$%& *+/=?^_ { }~-]+ )* "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]

Mehr

Benutzung der Manpage, Shell Teil 3

Benutzung der Manpage, Shell Teil 3 Benutzung der Manpage, Shell Teil 3 Linux-Kurs der Unix-AG Andreas Teuchert 3./9. Mai 2012 Manpages Dokumentation zu Programmen, speziellen Dateien, etc. steht in Manpages Aufruf mit man Manpage

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Ferdinand Beyer. 1 Allgemeines Beschreibung Bezeichnungen Einsatzgebiete in UNIX-Tools Notationsarten...

Ferdinand Beyer. 1 Allgemeines Beschreibung Bezeichnungen Einsatzgebiete in UNIX-Tools Notationsarten... Reguläre Ausdrücke Ferdinand Beyer Inhaltsverzeichnis 1 Allgemeines 2 1.1 Beschreibung............................. 2 1.2 Bezeichnungen............................ 2 1.3 Einsatzgebiete in UNIX-Tools....................

Mehr

Reguläre Sprachen und endliche Automaten

Reguläre Sprachen und endliche Automaten Reguläre Sprachen und endliche Automaten 1 Motivation: Syntaxüberprüfung Definition: Fließkommazahlen in Java A floating-point literal has the following parts: a whole-number part, a decimal point (represented

Mehr

Informationsextraktion Materialien zur Vorlesung

Informationsextraktion Materialien zur Vorlesung Vordefinierte Informationsextraktion Materialien zur Vorlesung Reguläre Ausdrücke D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

Mehr

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Dozentin: Wiebke Petersen 9. Foliensatz Wiebke Petersen Einführung CL 1 Suche mit regulären Ausdrücken Suche nach allen Wortformen des

Mehr

Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär?

Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär? Donnerstag, 11. November 2004 13h00, Mozartsaal Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär? Dr. Martin Wunderli Trivadis AG, Zürich-Glattbrugg Schlüsselworte Reguläre Ausdrücke,

Mehr

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs Reguläre Ausdrücke Felix Döring, Felix Wittwer 14. November 2016 Python-Kurs Gliederung 1. Grundlagen 2. Matching Regeln Sonderzeichen Zusammengesetzte Regex Spezielle Sequenzen 3. Methoden 4. reqular

Mehr

SelfLinux-0.12.3. Reguläre Ausdrücke

SelfLinux-0.12.3. Reguläre Ausdrücke Reguläre Ausdrücke Autor: Dennis Roch (ysae@users.sourceforge.net) Formatierung: Matthias Hagedorn (matthias.hagedorn@selflinux.org) Lizenz: GFDL Reguläre Ausdrücke Seite 2 Inhaltsverzeichnis 1 Einleitung

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2016/17 Aufgabenblatt 2 31.10.2016

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Dateisystem 2, Suchen & Finden, Manpages

Dateisystem 2, Suchen & Finden, Manpages Dateisystem 2, Suchen & Finden, Manpages Linux-Kurs der Unix-AG Malte Koster 17. Januar 2014 ln ln ( link ) legt Verknüpfungen an, Verwendung wie cp ohne Optionen wird ein zweiter Name für die gleiche

Mehr

Reguläre Ausdrücke Suchmuster, Pattern Matching

Reguläre Ausdrücke Suchmuster, Pattern Matching Suchmuster, Pattern Matching Ein oder mehrere Einzelzeichen in interner Variablen $_suchen: /e/ #liefert wahr, wenn $_ ein 'e' enthält. /aus/ #liefert wahr, wenn $_ 'aus' enthält. while { if (/e/)

Mehr

Es gibt viele Programme, die mit regulären Ausdrücken arbeiten:

Es gibt viele Programme, die mit regulären Ausdrücken arbeiten: Reinald Cronauer 7. Februar 2001 Reguläre Ausdrücke 1 Einführung Reguläre Ausdrücke, kurz Regex genannt, erlauben das Suchen von Zeichenfolgen in große Texte. Ein regulärer Ausdruck ist aber flexibler

Mehr

Reguläre Ausdrücke. Karin Haenelt

Reguläre Ausdrücke. Karin Haenelt Reguläre Ausdrücke Karin Haenelt 25.04.2010 1 Inhalt Einführung Definitionen Kleene-Theorem Schreibweisen regulärer Ausdrücke Eigenschaften regulärer Sprachen 2 Was sind reguläre Ausdrücke? Reguläre Ausdrücke

Mehr

Automaten und Formale Sprachen

Automaten und Formale Sprachen Automaten und Formale Sprachen Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2011/12 WS 11/12 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien

Mehr

Reguläre Ausdrücke. Prof.Dr.Christian Wagenknecht mit Beiträgen von Herrn Dr.Michael Hielscher

Reguläre Ausdrücke. Prof.Dr.Christian Wagenknecht mit Beiträgen von Herrn Dr.Michael Hielscher Reguläre Ausdrücke Prof.Dr.Christian Wagenknecht mit Beiträgen von Herrn Dr.Michael Hielscher Prof.Dr.Chr. Wagenknecht Formale Sprachen und Automaten 1/44 Definition reguläre Ausdrücke für reguläre Sprachen

Mehr

1 Syntax von Programmiersprachen

1 Syntax von Programmiersprachen 1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme

Mehr

Einleitung. liefert Ihnen alle Dateien, die mit.txt enden. Oder dir bericht??.txt

Einleitung. liefert Ihnen alle Dateien, die mit.txt enden. Oder dir bericht??.txt Betrifft Regular Expressions Autor Martin Bracher (martin.bracher@trivadis.com) Art der Info Technische Background Info (November 2003) Quelle Aus unserer Schulungs- und Beratungstätigkeit Einleitung Sie

Mehr

Einführung in PERL 2 Reguläre Ausdrücke

Einführung in PERL 2 Reguläre Ausdrücke Einführung in PERL 2 Reguläre Ausdrücke BASIEREND AUF FOLIEN VON DR. H. ZINSMEISTER und dem Buch `Einführung in Perl (Lama Buch) von RL Schwartz&T Phoenix sowie hwp://de.sel[tml.org/perl/sprache/regexpr.htm

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition

Mehr

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen

Mehr

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten Kapitel 3: Reguläre Grammatiken und Endliche Automaten Prof.-Dr. Peter Brezany Institut für Softwarewissenschaft Universität Wien, Liechtensteinstraße 22 090 Wien Tel. : 0/4277 38825 E-mail : brezany@par.univie.ac.at

Mehr

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19 1/19 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 16. Januar 2008 2/19 Reguläre Ausdrücke vierte Art (neben Typ-3-Grammatiken, deterministischen und nicht-deterministischen

Mehr

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ. Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ. (ii) ε ist ein regulärer Ausdruck über Σ. (iii) Für jedes a Σ ist a ein regulärer

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 5: Reguläre Ausdrücke und Grammatiken schulz@eprover.org Software Systems Engineering Reguläre Sprachen Bisher: Charakterisierung von Sprachen über Automaten

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Regexp Reguläre Ausdrücke

Regexp Reguläre Ausdrücke Vincent Tscherter, Raimond Reichert Regexp Reguläre Ausdrücke Suchen und Ersetzen von en, das können sehr viele Programme. Aber was, wenn man nach allen Telefonnummern oder E-Mail-Adressen in einem suchen

Mehr

11 Fallstudie: Reguläre Ausdrücke

11 Fallstudie: Reguläre Ausdrücke 11 Fallstudie: Reguläre Ausdrücke Mit den bisher eingeführten Sprachelementen von Haskell lassen sich bereits substantielle Projekte realisieren. Dieses Kapitel 1 beschreibt einen algebraischen Datentyp

Mehr

GREP. Reguläre Ausdrücke. GREP Hardcore. Syntax. Ersetzen Suchen. Look Around. 20. April 2012 Pubkon 2013

GREP. Reguläre Ausdrücke. GREP Hardcore. Syntax. Ersetzen Suchen. Look Around. 20. April 2012 Pubkon 2013 GREP Syntax Reguläre Ausdrücke Look Around Ersetzen Suchen GREP Hardcore 20. April 2012 Pubkon 2013 Kontakt: Folien: gregor.fellenz@publishingx.de http://www.publishingx.de/dokumente Lizenz: c b n Quelle:

Mehr

b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf Bayerische Akademie der Wissenschaften, IT-Referat

b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf Bayerische Akademie der Wissenschaften, IT-Referat b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf raaf@badw.de Bayerische Akademie der Wissenschaften, IT-Referat Reguläre Ausdrücke engl. regular expressions, kurz: regex, regexp

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Werkzeuge der Informatik UNIX

Werkzeuge der Informatik UNIX Autor: David Mainzer Institut für Informatik 1 Werkzeuge der Informatik UNIX Prof. Dr. Gabriel Zachmann (zach@in.tu-clausthal.de) David Mainzer (dm@tu-clausthal.de) Institut für Informatik 17. Dezember

Mehr

Reguläre Ausdrücke. AnPr

Reguläre Ausdrücke. AnPr Name Klasse Datum 1 Allgemeines Reguläre Ausdrücke (engl. Regular Expressions) dienen dazu, Texte bzw. Textpassagen zu beschreiben, indem Texte als Mengen von Zeichen interpretiert werden und die Beschreibung

Mehr

17 R E L AT I O N E N

17 R E L AT I O N E N 17 R E L AT I O N E N 17.1 äquivalenzrelationen 17.1.1 Definition In Abschnitt 11.2.1 hatten wir schon einmal erwähnt, dass eine Relation R M M auf einer Menge M, die reflexiv, symmetrisch und transitiv

Mehr

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Kapitel 4 Einführung in den Scannergenerator Flex Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9 Generatoren für die lexikalische Analyse Scannergeneratoren werden eingesetzt um die

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Arbeiten mit Regulären Ausdrücken. Annette Gerstenberg Würzburg, 16. März 2016 Workshop "Digitale Methoden" beim Forum Junge Romanistik

Arbeiten mit Regulären Ausdrücken. Annette Gerstenberg Würzburg, 16. März 2016 Workshop Digitale Methoden beim Forum Junge Romanistik Arbeiten mit Regulären Ausdrücken Annette Gerstenberg Würzburg, 16. März 2016 Workshop "Digitale Methoden" beim Forum Junge Romanistik Warum RegEx? Ziele! Beispiel 1: Bereinigen eines Transkripts, Entfernen

Mehr

C. Ortseifen: Reguläre Ausdrücke

C. Ortseifen: Reguläre Ausdrücke Inhalt Reguläre Ausdrücke mit SAS Einsatz der RX- und PRX-Funktionen Dr. Carina Ortseifen SAS-Treff am URZ 2. Dezember 2005 1. Einleitung 2. Aufbau der regulären Ausdrücke 3. Beispiele 4. Reguläre Ausdrücke

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind: 3. Reguläre Sprachen Bisher wurden Automaten behandelt und Äquivalenzen zwischen den verschiedenen Automaten gezeigt. DEAs erkennen formale Sprachen. Gibt es formale Sprachen, die nicht erkannt werden?

Mehr

Übungsaufgaben zu Formalen Sprachen und Automaten

Übungsaufgaben zu Formalen Sprachen und Automaten Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel

Mehr

Theoretische Informatik. Alphabete, Worte, Sprachen

Theoretische Informatik. Alphabete, Worte, Sprachen Theoretische Informatik Alphabete, Worte, Sprachen Alphabete, Worte, Sprachen 1. Alphabete und Worte Definitionen, Beispiele Operationen mit Worten Induktionsbeweise 2. Sprachen Definition und Beispiele

Mehr

Übung zur Vorlesung Theoretische Information. Pumping Lemma

Übung zur Vorlesung Theoretische Information. Pumping Lemma Übung zur Vorlesung Theoretische Information Pumping Lemma Folie Ein Endlicher Automat q q, q 2, Akzeptierte Sprache? Folie 2 Ein Endlicher Automat q q, q 2, Akzeptierte Sprache? Am Anfang eine, dannach

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 9: Speicher Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/20 Überblick Speicher Bit und Byte Speicher als Tabellen

Mehr

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009 Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009 Teil 5: Unix Shells Dr. Erwin Hoffmann E-Mail: unix@fehcom.de https://www.fehcom.net/unix/ Shell? Standardard-mässig führt Unix nach

Mehr

Reguläre Ausdrücke. Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik

Reguläre Ausdrücke. Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Reguläre Ausdrücke Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Sinn und Ziel Reguläre Ausdrücke sind eine Möglichkeit eine Menge von Strings aufgrund von gemeinsamen Merkmalen zu

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 3 14. Mai 2010 Einführung in die Theoretische

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor

Mehr

Theoretische Informatik 2

Theoretische Informatik 2 Theoretische Informatik 2 Tutorium #1 18.4.2002 (Fabian Wleklinski) Reguläre Ausdrücke Unterschied zwischen leerer Sprache und Sprache aus leerem Wort! R 1 := L(R 1 )={} R 2 :=ε L(R 2 )={ε} In vielen Programmiersprachen:

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Rolf Socher ISBN 3-446-22987-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22987-6 sowie im Buchhandel Einführung.. 13 2 Endliche

Mehr

Compilerbau I Sommersemester 2008

Compilerbau I Sommersemester 2008 Fachbereich 12 Informatik und Elektrotechnik Programmiersprachen Kurt Sieber Benedikt Meurer Compilerbau I Sommersemester 2008 Übungsblatt 1 Aufgabe 1 Der erweiterte reguläre Ausdruck α{m, n erkennt zwischen

Mehr

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Formale Sprachen: Allgemeines Sprachen werden

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

b2boptic / SF7 Freiburg 22.10.2015

b2boptic / SF7 Freiburg 22.10.2015 b2boptic / SF7 Freiburg 22.10.2015 Themen b2boptic im Web SF7 / LensCatalog Webservice b2boptic Forum 12 Jahre glaeserforum.de glaeserforum.de ist nun forum.b2boptic.com Über 400 angemeldete Benutzer 2000

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten

Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten Sprachliche Informationsverarbeitung 29.01.2007 HS Intelligente Systeme Prof. Dr. J. Rolshoven (WS 06/07) Grafische Interaktionssysteme/ dynamische Visualisierung des endlichen Automaten Referentin: Melinda

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103 Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103 7 Endliche Automaten Ein erstes Beispiel Ganz im Sinn der vorangegangenen Kapitel machen wir wieder Anleihen in einem wohl etablierten Gebiet.

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Heiko Baur 10. November 2006

Heiko Baur  10. November 2006 Reguläre Ausdrücke Heiko Baur http://www.belbardonisakel.de 10. November 2006 1 / 60 Begriffsdefinition Wildcards und reguläre Ausdrücke Zusammenfassung Teil I Einleitung 2 / 60 Begriffsdefinition Wildcards

Mehr

Typdeklarationen. Es gibt in Haskell bereits primitive Typen:

Typdeklarationen. Es gibt in Haskell bereits primitive Typen: Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Reguläre Ausdrücke: Beschreibung und Anwendung

Reguläre Ausdrücke: Beschreibung und Anwendung Reguläre Ausdrücke: und Anwendung Version 1.41 17.12.2014 Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Der Autor

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 2: Prädikatenkalkül erster Stufe Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. Oktober 2016 1/38 DIE INTERPRETATION

Mehr

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Operatoren Schleifen Case Funktionen Kommandos Signale Stringmanipulation

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Operatoren Schleifen Case Funktionen Kommandos Signale Stringmanipulation Einführung in Linux Antonia Blanke :Zuweisung,Arithmetisch,Bitweise Logische Andere Die Bash stellt verschiedene zur Verfügung Zuweisungsoperatoren Arithmetische Bitweise Logische Andere :Zuweisung,Arithmetisch,Bitweise

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Tutorium Reguläre Ausdrücke/Code Munger

Tutorium Reguläre Ausdrücke/Code Munger Tutorium Reguläre Ausdrücke/Code Munger (Version 1.2 vom 14.3.2014) Einleitung Mit reguläre Ausdrücken lassen sich Mengen von Zeichenketten beschreiben. Diese Beschreibungen werden dann zum Beispiel zur

Mehr

Kapitel 4: Syntaxdiagramme und Grammatikregeln

Kapitel 4: Syntaxdiagramme und Grammatikregeln 4. Syntaxdiagramme und Grammatikregeln 4-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 4: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische

Mehr

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5.

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5. Formale Sprachen Spezialgebiet für Komplexe Systeme Yimin Ge 5ahdvn Inhaltsverzeichnis 1 Grundlagen 1 2 Formale Grammatien 4 Endliche Automaten 5 4 Reguläre Sprachen 9 5 Anwendungen bei Abzählproblemen

Mehr

VisualBasic - Variablen

VisualBasic - Variablen Typisch für alle Basic-Dialekte ist die Eigenschaft, dass Variablen eigentlich nicht deklariert werden müssen. Sobald Sie einen Bezeichner schreiben, der bisher nicht bekannt war, wird er automatisch angelegt

Mehr

Thomas Behr. 17. November 2011

Thomas Behr. 17. November 2011 in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 4: Nichtdeterminismus Teil 2 schulz@eprover.org Software Systems Engineering Nichtdeterministische endliche Automaten Definition: Ein nichtdeterministischer

Mehr

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

3. Grundlegende Begriffe von Logiken - Aussagenlogik

3. Grundlegende Begriffe von Logiken - Aussagenlogik 3. Grundlegende Begriffe von Logiken - Aussagenlogik Wichtige Konzepte und Begriffe in Logiken: Syntax (Signatur, Term, Formel,... ): Festlegung, welche syntaktischen Gebilde als Formeln (Aussagen, Sätze,

Mehr

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die

Mehr

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S Formale Grundlagen (WIN) Franz Binder Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Das Alphabet Σ sei eine endliche

Mehr