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

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

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

Übersicht. Einführung in Perl Datenstrukturen I. Datentypen Übersicht (1) Kernbegriffe. Kernbegriffe. Einführung der Datentypen.

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

Reguläre Ausdrücke Suchmuster, Pattern Matching

Einführung in Perl. O'REILLY Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo. Randal L. Schwartz, Tom Phoenix & brian dfoy

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

Kommandozeileneingabe. Einführung in Perl Kommandozeileneingabe etc. Kommandozeileneingabe Optionen. Kommandozeileneingabe Bsp (1)

Kontrollstrukturen (1)

Elementare Unix-Befehle 11

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

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

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

Perlkurs WS 14/15 Reguläre Ausdrücke I

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

C. Ortseifen: Reguläre Ausdrücke

Java I Vorlesung Imperatives Programmieren

Übersicht. Einführung in Perl. Einleitung. Organisatorisches. Organisatorisches. Heike Zinsmeister

Formale Sprachen und Automaten

Perl Regular Expressions in Base SAS

/ Vortrag Unix-AG

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

Einführung in die Computerlinguistik Einführung in Perl (2) reguläre Ausdrücke

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

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

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

FACHHOCHSCHULE MANNHEIM

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

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

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

/ Software Freedom Day

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

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

Empfehlenswerte Referenzen

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

MASCHINELLE SPRACHVERARBEITUNG Gertrud Faaß Basierend auf Folien von Dr. H Zinsmeister. Einführung in PERL

Perl-Praxis. Madis Rumming Jan Krüger

1.103 Regular Expressions - Reguläre Ausdrücke

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

3 Regular expressions

Perl-Workshop, Teil II

Arithmetik in der tcsh

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Syntax der Sprache PASCAL

Musterlösung Klausur 11/ Fragen zu utf-8: 1.1. Welche zwei Methoden gibt es, um STDIN und STDOUT auf utf-8 zu setzen.

Programmierkurs Python I

Tag 2 Repetitorium Informatik (Java)

Anwendung von (Perl) Regular Expressions für die Mustersuche in Strings

Einführung in die Programmiertechnik

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

Programmierkurs Python I

Einführung in die Computerlinguistik Einführung in Perl (1)

Einstieg in die Informatik mit Java

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Referenz (1) Einführung in Perl Referenzen. Zwei Typen von Referenz. Referenz (2) Referenz = Verweis auf andere Daten

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

Übersicht Shell-Scripten

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

Perl-Praxis.

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Ein- und Ausgabeumlenkung

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

Kapitel 2. Methoden zur Beschreibung von Syntax

Digital Humanities: Übung 1

Perl-Praxis.

Effizientes Arbeiten mit dem Emacs. Suchen und Ersetzen.

Effizientes Arbeiten mit dem Emacs. Suchen und Ersetzen.

Präzedenz von Operatoren

Korrekturen und Ergänzungen zur ABAP-Referenz

Übungspaket 9 Logische Ausdrücke

Proseminar UNIX Tools. Ferdinand Beyer

Informatik I Übung, Woche 40

15 Der AWK. (Aho, Weinberger, Kernighan)

Algorithmen und ihre Programmierung

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

Einführung in die Programmierung II. 3. Kontrollstrukturen

Inhalte der Vorlesung. 3. Der Textstrom-Editor sed. 3. Der Textstrom-Editor sed. Grundprinzip eines Textstrom-Editors

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

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

C/C++ Programmierung

ZWEITE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

Ausdrücke (1) Grundlegende Eigenschaften

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

Dateneingabe und Transformation Übersicht

Lexikalische Struktur von Fortran 95. Normierte Zeichensätze

Datentypen: integer, char, string, boolean

einem Eintrag ein: BMW AND motorrad findet alle Einträge die sowohl das Keyword BMW als auch motorrad enthalten

Perl-Praxis. Jörn Clausen

10 Reguläre Ausdrücke

INP (4) Prof. Dr.-Ing. S. Gössner. University of Applied Sciences Lippe & Höxter

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Transkript:

IMS Einführung in Perl Operatoren - Richtigstellung Mustersuche II Universität Stuttgart Institut für maschinelle Sprachverarbeitung http://www.ims.uni-stuttgart.de/lehre/teaching/2003-ws/perl/home.html Heike.Zinsmeister@ims.uni-stuttgart.de Wintersemester 03/04 Übersicht 1. Richtigstellung bzgl. Operatoren 2. Wortverankerung Ergänzungen 3. locale-pragma 4. Speicherfunktionen 5. Präzedenz in Suchmustern 6. Varianten des Mustervergleich-Operators 7. Ersetzungsoperator s/// 8. Standardverhalten von reg. Ausdrücken ändern Typeset by FoilTEX Perl, 07.11.03 Mustersuche II 1 IMS IMS Richtigstellung Operatoren (1) a && b oder a AND b ist a wahr? nein: Abbruch, Rückgabe: a ja: ist b wahr? nein: Abbruch, Rückgabe: b ja: Ende, Rückgabe: b Logische Auswertung, z.b. im Bedingungskontext von if oder while. Nur dann wahr, wenn beide Konjunkte wahr. $wert = "ja" && "nein"; # nein $wert = 0 && "nein"; # 0 $wert = "nein" && "" ; # (leerer String) Perl, 07.11.03 Mustersuche II 2 Richtigstellung Operatoren (2) a b oder a OR b ist a wahr? ja: Ende, Rückgabe: a nein: ist b wahr? nein: Abbruch, Rückgabe: b ja : Ende, Rückgabe: b dann wahr, wenn eines der beiden Konjunkte wahr. Kurzschluß bei erstem wahren Konjunkt. $wert = "ja" "nein"; # ja $wert = 0 "nein"; # nein $wert = 0 "" ; # "" (leerer String) $wert = "" 0 ; # 0 Perl, 07.11.03 Mustersuche II 3

Musterverankerung - Ergänzungen (2) b/ b... Wortanfang und Wortende / B/ B... Nicht-Wortanfang oder -ende / b/ Ein Buch im Regal Dort steht das Buch. Ein Bilder-Buch? Eine Buch-Ausstellung Ein Bilderbuch? # Kein Match! Eine Buchausstellung? # Kein Match! bbuch / b/ Himbeereis! Himbeereises! sehr eisig# Kein Match! Beis(e es)? / Perl, 07.11.03 Mustersuche II 5 Speicherfunktionen 1. Rückwärtsreferenz innerhalb von Suchmustern 2. Speichervariablen Perl, 07.11.03 Mustersuche II 7 Musterverankerung - Ergänzungen (1) Anker markieren Positionen, nicht Zeichen A).../ (auch Zeilenbeginn / Z) z, Zeilenende /...$/ (auch Matcht genau genommen nicht auf Zeilen, sondern Einlesestrings Zeilenendeverankerung ist nicht sensitiv bzgl. Newlinezeichen /muster$/ findet...muster und...muster n Perl, 07.11.03 Mustersuche II 4 locale-pragma Pragmas sind Hinweise an den Compiler locale: Get locale-specific information. z.b. Anordnung von Zeichen im Alphabet (Umlaute!) Wertemenge von Klasse w siehe perldoc perllocale ( e am Ende ist wichtig) Beispiel: w*e/ /S use locale Söhne = ohne kein Match mit Match Perl, 07.11.03 Mustersuche II 6

Rückwärtsreferenz (2) Klammernbezug: von links nach rechts /(" )[^\1]*\1/ -> findet Wörter in passenden Anführungsstriche -> " wilma " /((fred wilma) f.) \2/ -> "fred f. fred" # Match -> "wilma f. wilma" # Match -> "fred f. wilma" # kein Match! Perl, 07.11.03 Mustersuche II 9 Speichervariablen (2) if ($in =~ /fred (wilma)/){ $w = $1; print "Ich habe $w gefunden.\n"; # wenn z.b. $in = "fred wilma\n" # Ausgabe: # "Ich habe wilma gefunden." Perl, 07.11.03 Mustersuche II 11 Rückwärtsreferenz (1) runde Klammern gruppieren und speichern Wiederaufruf innerhalb von Suchmuster Notation: Klammerung... Backslash-Zahl, z.b. /(abc) 1/ zwei beliebige Zeichen zwei identische Zeichen 2 beliebige Zeichensequenzen, durch Leerzeichen getrennt ]*)/ 1/ ]*) ([ /../ /(.) /([ 2 identische Zeichensequenzen, durch Leerzeichen getrennt 1/ ]*) /([ Perl, 07.11.03 Mustersuche II 8 Speichervariablen (1) wie Rückwärtsreferenz, nur nach beendeter Mustererkennung d.h. außerhalb von /.../ Notation: Klammerung in Mustersuche, Wiederaufgreifen mit Dollar-Zahl, z.b. /(abc)/...$1 Speichervariable oft innerhalb der {-Anweisung einer if-bedingung Perl, 07.11.03 Mustersuche II 10

Speichervariablen (3) Wenn Klammern nur gruppieren, aber nicht speichern sollen: (?:...) while ($in = <> ){ chomp($in); if ($in =~ /^([^ ]+) (?:und oder)? ([^ ]+)/) { $w1 = $1; $w2 = $2; print "Wort 1 = $w1, Wort 2 = $w2.\n"; Perl, 07.11.03 Mustersuche II 13 Automatische Speichervariablen (2) # /usr/bin/perl -w while ($in = <>){ chomp ($in); if ($in =~ /\b(a\w*)\b/) { print "Gefunden: $ <$&>$ \n"; # findet alle gross= # geschriebenen Woerter # mit A und zeigt sie mi # Kontext an Perl, 07.11.03 Mustersuche II 15 Speichervariablen (3) Klammern zählen von links nach rechts hoch. while ($in = <> ){ chomp($in); if ($in =~ /^([^ ]+) ([^ ]+)/) { $w1 = $1; $w2 = $2; print "Wort 1 = $w1, Wort 2 = $w2.\n"; Perl, 07.11.03 Mustersuche II 12 Automatische Speichervariablen (1) $& Stringteil, das auf Muster zutrifft $ alles davor (auf der eingelesenen Zeile) $ alles danach (auf der eingelesenen Zeile) Beispiel: KWIC-Format (KeyWord In Context) Perl, 07.11.03 Mustersuche II 14

Präzedenz in Suchmustern - Beispiele /^fred barney$/ # Alternation: "fred am Stringanfang" o # "barney am Stringende" /^(fred barney)$/ # "fred" oder "barney" als einziges # Element des Strings /fred barney/ # "fred" oder "barney" irgendwo /(wilma pebbles?)/ # "wilma" oder "pepple" oder "pepples" /^(\w+)\s+(\w+)$/ # Zeile mit genau zwei Zeichensequenzen Perl, 07.11.03 Mustersuche II 17 Ersetzungsoperator s/// Funktion: Suche und Ersetze Syntax: s/gesuchtes Muster/wird ersetzt durch diesen Text/ Beispiele (siehe Schwartz & Phoenix 2002: 138) $in = "gruener schuppiger Dinosaurier"; $in =~ s/(\w+) (\w+)/$2 $1/; $in =~ s/^/riesiger, /; $in =~ s/,.*uener//; $in =~ s/riesiger/roter/; $in =~ s/ \w+$/ ($!)$&/; $in =~ s/roter/gigantischer/; print "$in\n"; # gigantischer (roter!) Dinosauri Perl, 07.11.03 Mustersuche II 19 Präzedenz in Suchmustern Zeichen Erklärung () runde Klammern *,+,?,{n,m Quantifizierer Bezug auf unmittelbar vorangehendes Element /, $/, b, B, abc123 Anker und Zeichenfolgen Balken für Alternativen Perl, 07.11.03 Mustersuche II 16 Varianten des Mustervergleich-Operators /.../ ist Kurzform für m/.../ (m = matching) Musterbegrenzungszeichen sind eigentlich beliebig d.h. m/.../ gleich m{... gleich m!...! etc. Ausweich auf alternative Musterbegrenzung z.b., wenn Suchstring viele Slashes / enthält if ($var =~ m"#! /usr/bin/perl -w" { # " " als Begrenzung Anweisung; # des Musters Perl, 07.11.03 Mustersuche II 18

Standardverhalten von reg. Ausdrücken ändern Beispiele (1) $in = "BlaBla"; # Eingangswert soll jeweils # bei allen Ersetzungen gelten $in =~ s/bla/\lbla/; # "blabla" $in =~ s/bla/\lbla/g; # "blabla" $in =~ s/bla/\ubla/g; # kein Match $in =~ s/bla/\ubla/gi; # "BlaBla" Perl, 07.11.03 Mustersuche II 21 Referenzen Buchmanuskript http://www.perlmonk.org, Kapitel 3 Schwartz R. und T. Phoenix, 2002. Einführung in Perl. O Reilly, Kapitel 7 9 weiterführende Literatur: Friedl J. E. F., 2002. Mastering Regular Expressions O Reilly. Perl, 07.11.03 Mustersuche II 23 Standardverhalten von reg. Ausdrücken ändern markiert durch nachgestellte Flags oder Option-Modifier Übersicht auf Manpage perlop n /.../i ignoriert Groß-und Kleinschreibung / bja b/i findet ja oder Ja /.../s macht aus. die Klasse [ d D] d.h. Wildcard. findet alle Zeichen, auch /.../g findet alle Vorkommnisse eines Musters solange sich die Vorkommnisse nicht überschneiden s/alt/neu/g; /.../e wertet Ersatztext-Operanden des Substitutionsoperators als Perlcode aus Perl, 07.11.03 Mustersuche II 20 Standardverhalten von reg. Ausdrücken ändern Beispiele (2) $in = "time"; # Eingangswert soll jeweils # bei allen Ersetzungen gelten $in =~ s/time/localtime/g; # "localtime" $in =~ s/time/localtime/eg; # "Thu Nov 6 17:32:15 2003" $variable = 42; $in = "BlaBla"; $in =~ s/blabla/$variable-2/g; # "42-2" $in =~ s/blabla/$variable-2/eg; # "40" Perl, 07.11.03 Mustersuche II 22