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

Ähnliche Dokumente
Formale Sprachen und Automaten

/ Vortrag Unix-AG

Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg

Proseminar UNIX Tools. Ferdinand Beyer

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

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

3 Regular expressions

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

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

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen 17.5.

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

Reguläre Ausdrücke mit Java

Übersicht. Einführung in Perl Operatoren - Richtigstellung Mustersuche II. Richtigstellung Operatoren (2) Richtigstellung Operatoren (1)

Reguläre Ausdrücke IDE AUTUMN SCHOOL

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

UNIX Power Tools. Helferlein für den Alltag. Maximilian Haupt

Empfehlenswerte Referenzen

Theoretische Informatik 2

Propädeutikum Programmierung in der Bioinformatik

Beispiel Produktautomat

Seien M 1,M 2 NFAs f. die Sprachen L 1 und L 2. Konstruktion eines NFAs für L 1 L 2 : Erzeuge Kopien von M 1 und M 2. p 1

1.103 Regular Expressions - Reguläre Ausdrücke

Reguläre Ausdrücke O'REILLT. Jeffrey E. E Eriedl. Deutsche Übersetzung von Andreas Karr er

/ Software Freedom Day

Theoretische Informatik. Reguläre Sprachen und Automaten

Elementare Unix-Befehle 11

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

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

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig

Lexikalische Programmanalyse der Scanner

MySQL Informationsgewinnung Teil 3. Stefan Maihack Dipl. Ing. (FH) Datum:

Reguläre Ausdrücke. Karin Haenelt

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Digital Humanities: Übung 1

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

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

Efficient Regexes. Pascal Zambito

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

Grundlagen der Theoretischen Informatik

Grundbegriffe der Informatik

Formale Sprachen und endliche Automaten

Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T>

Reguläre Sprachen und endliche Automaten

Übung Praktische Informatik I

Grundlagen der Theoretischen Informatik

Übersicht. Einführung in Perl Mustersuche III/ Datentypen II. Mehrzeiliges Matching (1) Mehrzeiliges Matching (2) chomp

Heute: Was ist eigentlich das da?

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

Wozu braucht man das? (1) Wozu braucht man das? (2)

Informationsextraktion Materialien zur Vorlesung

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

Dateisystem 1, Suchen & Finden

Reguläre Ausdrücke in Python

15 R E G U L Ä R E AU S D R Ü C K E U N D R E C H T S L I N E A R E G R A M M AT I K E N

19 R E G U L Ä R E AU S D R Ü C K E U N D R E C H T S L I N E A R E G R A M M AT I K E N

Patrick Simianer Visualisierung regulärer Ausdrücke

Sebastian Harl. 03. Oktober 2008

Informatik III. Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung

Induktive Definition

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Compilerbau. Übung 2. Prof. Johann-Christoph Freytag Dr. Klaus Ahrens Jörg Bachmann Fabian Fier Dorian Weber. 18. Mai 2016

Einführung in Perl Übersicht Operatoren Mustersuche I Autoinkrement und Autodekrement Autoinkrement und Autodekrement Bsp

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Automaten und formale Sprachen. Lösungen zu den Übungsblättern

Thomas Behr. 17. November 2011

Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN D3kjd3Di38lk323nnm

Arbeiten mit der Shell Teil 4

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Dateisystem 2, Suchen & Finden

Arbeiten mit der Shell Teil 4

Arbeiten mit der Shell Teil 4

Parsing regulärer Ausdrücke. Karin Haenelt

Perl Regular Expressions in Base SAS

Gepufferte Eingabe und reguläre Ausdrücke 397

Reguläre Ausdrücke. Reguläre Ausdrücke = Regular Expressions = reg.exp./regexp/regexp = RE

Algorithmen auf Sequenzen

4. Übung zur Vorlesung Informatik III am

Gepufferte Eingabe und reguläre Ausdrücke 398

Regular Expressions. Daniel Lutz Was ist eine Regular Expression?

Übersicht Shell-Scripten

3.0 VU Formale Modellierung

Arithmetik in der tcsh

Reguläre Ausdrücke Suchmuster, Pattern Matching

4. Die lexikalische Analyse

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Grundlegende Datentypen

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

Grundlegende Datentypen

Überführung regulärer Ausdrücke in endliche Automaten

Funktionale Programmierung Grundlegende Datentypen

Programmierkurs Kapitel 4

Grundbegriffe der Informatik

Reguläre Ausdrücke. Silke Trißl Wissensmanagement in der Bioinformatik

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Reguläre Ausdrücke. AnPr

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

Transkript:

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 dauert knapp 45 min und soll Anregung sein, sich mehr mit Perl, Makroprozessing und Unix zu beschäftigen. c 2002 by Andreas Romeyke 1

Inhalt Inhalt Einführung Was sind Basisbausteine? Zwei wichtige Regeln um RegEx zu verstehen Implementierungen Geschwindigkeit ist keine Hexerei Andere Programme Ausblick Literatur c 2002 by Andreas Romeyke 2

Was... 1 Was sind Reguläre Ausdrücke? Reguläre Ausdrücke sind: Suchmuster Vorlagen, Schablonen Textmanipulationsfilter endliche Automaten LEGO TM *-Steine c 2002 by Andreas Romeyke 3

Basisbausteine 2 Basisbausteine patterns (oder auch Muster) quantifiers (oder auch Wiederholungssymbole) anchors (oder auch Anker) c 2002 by Andreas Romeyke 4

Basisbausteine buffers (oder auch Puffer) classificators (oder auch Symbolklassen zb. Ziffern) area controller (bzw. Symbole um Bedingungen abzuklären) c 2002 by Andreas Romeyke 5

Basisbausteine Ein sehr einfacher Ausdruck ist: stop nonstop Hier nochmal das Beispiel mit den Dateien: test.bat *.exe test.exe test.png Streng genommen müsste der Reguläre Ausdruck so lauten: test.bat [^\.]+\.exe test.exe test.png c 2002 by Andreas Romeyke 6

Basisbausteine Was sind denn nun Pattern? Nun ein Pattern kann: ein Zeichen oder ein Symbol eine Gruppe von Symbolen (String) eine Klasse von Symbolen sein. Pattern kann man auch Unterausdruck nennen. c 2002 by Andreas Romeyke 7

Basisbausteine Eine Gruppe von Symbolen wird in runden Klammern eingeschlossen: (symbol) gruppiert zum String symbol Wohingegen eine Klasse von Symbolen in eckigen Klammern eingeschlossen wird: [symbol] Trifft auf s, y, m, b, o oder l zu c 2002 by Andreas Romeyke 8

Basisbausteine Um eine Klasse zu negieren, benutzt man das Zirkumflex: [^symbol] Trifft nicht auf s, y, m, b, o oder l zu Eine Gruppe von Pattern oder Ausdrücken wird auch in Klammern eingeschlossen: (sym [bol]) Trifft auf Ausdrücke symb, symo oder syml zu. c 2002 by Andreas Romeyke 9

Basisbausteine Daneben gibt es noch die Quantifiers: * kein Unterausdruck oder einer und mehrere Unterausdrücke + einer und mehrere Unterausdrücke? kein Unterausdruck oder nur einer {2} nur zwei Unterausdrücke (nich mehr, nicht weniger) {2, } zwei und mehr Unterausdrücke {2, 5} zwei bis zu fünf Unterausdrücke {, 5} keiner oder eins bis fünf Unterausdrücke Auch hierzu wieder ein Beispiel: 12? 011 oder 012, nicht 122 c 2002 by Andreas Romeyke 10

Basisbausteine Was bisher noch fehlte sind die Anker: ^ markiert den Beginn des Strings $ markiert das Ende des Strings ^script scriptum, nicht postscript tum$ scriptum, nicht tumbre ^script script, nicht postscriptum script postscriptum c 2002 by Andreas Romeyke 11

Regeln... 3 Wichtige Regeln! 1. Der Treffer gewinnt, der am frühesten beginnt 2. Manche Quantifiers sind gefräßig Ein Beispiel: [0-9]+ matcht auf September 2001 c 2002 by Andreas Romeyke 12

Regeln... Manche Quantifiers sind gefräßig Perl bietet den nicht gierig -Operator. S.*?e matcht auf September 2001 c 2002 by Andreas Romeyke 13

Machine... 4 Die geheimnisvolle Maschine NFA DFA POSIX-NFA c 2002 by Andreas Romeyke 14

Geschwindigkeit... 5 Geschwindigkeit ist keine Hexerei DFA besser als POSIX-NFA besser als NFA... Wissen ist Macht! Sch[:alpha:]+ statt Sch.* um nach Schneider zu suchen keine Alternativen! Kampf der Gefräßigkeit! Anchor halten das Schiff ruhig! Negativ ist Positiv! c 2002 by Andreas Romeyke 15

Auf zu... 6 Auf zu anderen Ufern... oder Notation von RegEx in anderen Programmen leere Menge Theorie Perl Grep Shell SQL einzelnes Zeichen a a a a a Konkatenation ab ab ab ab ab Alternative a b a b a\ b Klammer (... ) (... ) \(... \) i-te Klammer Zeichen aus Menge a b c [abc] Zeichen aus Nichtmenge [^abc] [^abc] [^abc] beliebiger Char.. _? beliebiger String.*.* * % Kleenescher Abschluß a* a* a* optionaler Ausdruck ( x) a? a\? 1.. fache Wiederholung xx* x+ x+ c 2002 by Andreas Romeyke 16

Ausblick... 7 Was Perls RegExer noch so bietet positive Look-aheads?= negative Look-aheads?! positive Look-behinds?<= negative Look-behinds?<! Rückbezüge auf Klammern \1... \n c 2002 by Andreas Romeyke 17

Ausblick... Ersatzsymbole für Wörter \w Wortgrenzen \b Whitespace \s Digits \d Abkürzungen für POSIX-Zeichenklassen [:alpha:] Identifier für nicht gieriges Verhalten a*?b c 2002 by Andreas Romeyke 18

Literatur... 8 Literatur Wie geht es weiter? Friedl, Jeffrey E. F.:Mastering Regular Expressions; O Reilly & Associates, Inc; 1998 Schwartz, Randal L.; Christiansen, Tom:Learning Perl, Second Edition; O Reilly & Associates, Inc;1997 man perlfaq, man perlre Die Perl-Seite http://perl.com GAOS e.v. http://gaos.org/ http://andreas-romeyke.de http: //txt2regex.sourceforge.net c 2002 by Andreas Romeyke 19