Programmierungssprache PERL

Slides:



Advertisements
Ähnliche Präsentationen
Informatik II: Algorithmen und Datenstrukturen SS 2013
Advertisements

Forschungszentrum caesar
Bonn-to-code.net Keine Angst vor Regulären Ausdrücken Martin Winkler
Suche in Texten (Stringsuche )
10. Grundlagen imperativer Programmiersprachen
4. Serverbasierte Programmierung: Perl 4.1Grundlagen 4.1.1HTTP-Server und CGI-Schnittstelle 4.1.2Formulare 4.1.3Ein einfaches Perl Programm 4.2Interaktion.
Imperative Programmierung
Markus Tank, Wie arbeitet man mit dem Rich Text Editor?
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Unix-Shells Shell: Unix-Shell-Varianten:
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
XQuery – String Funktionen Datenbanktechnologie / SS 2012 / Leonard Claus.
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Die Skriptsprache Perl (3) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Reverse Engineering K2 1 Ziele Heute Nachlese Volltextsuche Dokumentation in Quelltext einbetten JavaDoc Vorbereitung für Compileransatz.
Das erste Programm (Folie 16)
Einführung in Visual C++
Hauptseminar Automaten und Formale Sprachen
Einführung MySQL mit PHP
Seniorkom.at vernetzt Jung & Alt Das Internet ist reif
Hyperlinks und Anker Links notieren
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
FORTRAN 77.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a Einführung in Reguläre Ausdrücke.
Interpreter & Compiler
Erste Schritte mit dem virtuellen Klassenzimmer Diese Anleitung verwendet in den meisten Fällen den Browser Firefox; Für den Browser Internet-Explorer.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Dynamische Webseiten-Generierung
Einführung in PHP.
Einführung in PHP 5.
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele Beispiel 1 Konstruieren Sie für folgende Sprachen über = { a, b, c.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Zeichenketten in PASCAL
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
se_10_regulaere_ausdruecke.ppt1 Softwareengineering Reguläre Ausdrücke (regular expressions) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics.
1 Tagesüberblick 3 Lösung Hausaufgabe/Fragen Zeilenweises Lesen von Dateien Schleifenausbrüche Die Variable $_ Textfunktionen.
Meta-Modell für Story-Diagramme und Expressions
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Mensch – Maschine - Kommunikation
1 VeranstaltungThemaTeilnehmerBetreuer AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG Peter RENDL Helfried TUISEL Peter ZYCH Heinz STEGBAUER.
Berechenbarkeit Klaus Becker Berechenbarkeit.
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele: KFG und Automaten Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln:
Kapitel 4:Die Chomsky Hierarchie
Aufgaben zur Kombinatorik
(Syntax, Strings/Zahlen, Variablen, Arrays)
PERL Eike Busse2 Gliederung 1.Einleitung 2.Geschichte 3.Eigenschaften/Merkmale von Perl 4.HTTP Server und Perl 5.Sicherheit 6.Perl programmieren.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht vollständig mit Powerpoint für Windows kompatibel.
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Reguläre Ausdrücke Stephan Baldes
Variablen und Datentypen
Arbeiten mit WordSmith 4. Inhalt 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus) 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus)
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Perl: pattern matching and regular expressions
Left Join, Right Join, Outer Join
 Präsentation transkript:

Programmierungssprache PERL Prof.-Dr. Peter Brezany Institut für Scientific Computing Universität Wien, Nordbergstraße 15/C/315 1090 Wien Tel. : 01/4277 38825 E-mail : brezany@par.univie.ac.at Sprechstunde: Dienstag, 13.00-14.00

Perl Perl (Practical Extraction and Report Language) wurde #!/usr/bin/perl print “Hallo Welt! \n“; Perl (Practical Extraction and Report Language) wurde 1986 von Larry Wall entwickelt. "Easy things should be easy, and hard things should be possible." - Larry Wall http://www.perlunity.de/perl/tutorial/perl_start.shtml http://perlwelt.horus.at/ Interpretierte Sprachen: Perl, PHP, Basic,… Kompilierte Sprachen: C, C++, Pascal,… test.pl -> perl Interpreter -> laufendes Programm test.c -> C Compiler -> test.exe -> laufendes Progr.

Perl Mustererkennung und Reguläre Ausdrücke Reguläre Ausdrücke in Perl >= Reguläre Ausdrücke in Automatentheorie In Perl wird Mustererkennung für 3 Dinge verwendet: Beim Matching mit =~ m/MUSTER/ zur Suche nach einem Muster, bei der Textersetzung mit =~ s/MUSTER/TEXT/ zum Suchen nach einem Muster und Ersetzen durch einen Text und im Befehl split(MUSTER,STRING) zum Zerlegen eines Textes in mehrere Teile.

Perl: pattern matching and regular expressions $satz = “3 Engel für Charlie!“; $satz =~ m/a/; -> true matcht erstes kleines a im String $satz =~ m/\d/; -> true matcht erste Ziffer (3) im String (digit) $satz =~ m/\D/; -> true matcht erste Nicht-Ziffer (Leerzeichen nach 3 und vor E) Zeichen-Klassen: z.B. [01], [äöü], [a-z], [^0-9] $satz =~ m/f[äöü]r/; -> true matcht: fär oder för oder für im String matcht nicht: füür oder fäöür oder fr oder FÜR

Perl: pattern matching and regular expressions $satz = “Nur 3 Engel für Charlie?“; $satz =~ m/\?$/; -> true matcht: ein Fragezeichen im String, welches am String-Ende stehen muss Zeichen, wie ^ $ ? . + * | [ ) \ / haben eine spezielle Bedeutung in Muster und müssen, wenn sie als normales Zeichen verwendet werden, mit einem Backslash \ vor dem Zeichen markiert werden. $satz =~ m/^\?/; -> false matcht: ein Fragezeichen, welches am Stringanfang stehen muss

Perl: pattern matching and regular expressions $satz = “3 Engel für Charlie???“; $satz =~ m/Engeln?/; -> true Das Fragezeichen bedeutet, dass der Buchstabe vor dem Fragezeichen einmal oder keinmal vorkommen darf. $satz =~ m/Ch.rlie/; -> true Der Punkt (Joker) kann für genau ein beliebiges Zeichen stehen. matcht: Charlie, ChArlie, Ch1rlie, Ch%rlie, Ch rlie matcht nicht: Chrlie, Chaarlie, Stefan

Perl: pattern matching and regular expressions $satz = “3 Engel für Charlie???“; $satz =~ m/Charlie\?+/; -> true matcht: Charlie?, Charlie????, 1-n Fragezeichen $satz =~ m/Charlie\?*/; -> true matcht: Charlie auch ohne ?, also 0-n Fragezeichen $satz =~ m/Charlie\?{2,4}$/; -> true matcht: Charlie mit 2,3,oder 4 Fragezeichen $satz =~ m/ChArLiE/i; -> true Das i macht das Muster case-insesitive, also unempfindlich gegenüber Groß- oder Kleinschreibung.

Perl: pattern matching and regular expressions Text ersetzen: $satz = “Engel 1, Engel 2 und Engel 3 für Charlie!“; $satz =~ s/Engel/Teufel/; $satz = “Teufel 1, Engel 2 und Engel 3 für Charlie!“; $satz =~ s/Engel/Teufel/g; $satz = “Teufel 1, Teufel 2 und Teufel 3 für Charlie!“; print ( $satz =~ s/Engel/Teufel/g ) -> 2 bzw. 3 $satz =~ s/Engel/Teufel/i; -> case-insesitive

Perl: pattern matching and regular expressions Muster wieder verwenden: $satz = “Teufel 1, Teufel 2 und Teufel 3 für Charlie!“; $satz =~ s/(\d)/v$1.0/g; -> 3 ( $1 ist auch 3) $satz = “Teufel v1.0, Teufel v2.0 und Teufel v3.0 für Charlie!“; Mit runden Klammern kann man Teile des Strings abspeichern. Der gematchte Text des Musters im ersten Klammernpaar wird in $1, der im Zweiten in $2 gespeichert…

Perl: pattern matching and regular expressions Muster wieder verwenden: $satz = “Engel B“; $satz =~ s/^(.)(.*)(.)$/$3$2$1/; $satz = “Bengel E“; Der Ausdruck vertauscht den ersten und den letzten Buchstaben. ^ und $ erkennen den Anfang und das Ende des Strings; (.) speichert den ersten Buchstaben; (.*) speichert alles bis zum letzten Buchstaben; (.) speichert den letzten Buchstaben; Danach wird ersetzt, indem $1 und $3 vertauscht werden.

Perl: pattern matching and regular expressions Beispiel: korrekte E-Mail Adresse? if ( $email =~ /^[\w\-]+@[\.\w\-]+$/ ) {…} Beispiel: Österreichische Postleitzahl? if ( $plz =~ /A\s*-\s*\d{4}$/ ) {…} Beispiel: whitespace vorne und hinten entfernen… $satz =~ s/^\s*(.*?)\s*$/$1/;

\n - Zeilenumbruch \t - Tabulator \w - Irgendein alphanumerischer (word) Buchstaben; [a-zA-Z0-9_] \W - nicht alphanumerisch (non-word); ist identisch mit [^a-zA-Z0-9_] \d - Eine Zahl. Ist identisch mit [0-9] \D - Keine Zahl. Ist identisch mit [^0-9] \s - 'whitespace character': space, tab, newline, etc \S - 'non-whitespace character' \b - Wortgrenze (nur ausserhalb []) \B - Innerhalb eines Wortes . - Ein einzelner Buchstaben ohne newline ^ - Zeilen- oder Stringanfang (nur außerhalb von []) $ - Zeilen- oder Stringende * - Null oder mehrere Male den letzten Buchstaben (gierig / greedy) *? - Null oder mehrere Male den letzten Buchstaben (minimal) + - Ein oder mehrere Male den letzten Buchstaben (gierig / greedy) +? - Ein oder mehrere Male den letzten Buchstaben (minimal) ? - Null oder ein Mal den letzten Buchstaben [abc] - a oder b oder c [^ab] - weder a noch b [a-z]+ - Irgendeine Folge von Kleinbuchstaben | - entweder oder; z.B.: (eg|le)gs Entweder eggs oder legs () $1 - Teil des Strings merken {2,4} - Quantifier \i - ignore case (nach Muster) \g - greedy (nach Muster)