Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Programmierungssprache PERL Prof.-Dr. Peter Brezany Institut für Scientific Computing Universität.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Programmierungssprache PERL Prof.-Dr. Peter Brezany Institut für Scientific Computing Universität."—  Präsentation transkript:

1 Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Programmierungssprache PERL Prof.-Dr. Peter Brezany Institut für Scientific Computing Universität Wien, Nordbergstraße 15/C/ Wien Tel. : 01/ Sprechstunde: Dienstag,

2 Institut für Softwarewissenschaft – Universität WienP.Brezany 2 Perl #!/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 Interpretierte Sprachen: Perl, PHP, Basic,… Kompilierte Sprachen: C, C++, Pascal,… test.pl -> perl Interpreter -> laufendes Programm test.c -> C Compiler -> test.exe -> laufendes Progr.

3 Institut für Softwarewissenschaft – Universität WienP.Brezany 3 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: 1.Beim Matching mit =~ m/MUSTER/ zur Suche nach einem Muster, 2.bei der Textersetzung mit =~ s/MUSTER/TEXT/ zum Suchen nach einem Muster und Ersetzen durch einen Text und 3.im Befehl split(MUSTER,STRING) zum Zerlegen eines Textes in mehrere Teile.

4 Institut für Softwarewissenschaft – Universität WienP.Brezany 4 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

5 Institut für Softwarewissenschaft – Universität WienP.Brezany 5 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

6 Institut für Softwarewissenschaft – Universität WienP.Brezany 6 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

7 Institut für Softwarewissenschaft – Universität WienP.Brezany 7 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.

8 Institut für Softwarewissenschaft – Universität WienP.Brezany 8 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

9 Institut für Softwarewissenschaft – Universität WienP.Brezany 9 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…

10 Institut für Softwarewissenschaft – Universität WienP.Brezany 10 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.

11 Institut für Softwarewissenschaft – Universität WienP.Brezany 11 Perl: pattern matching and regular expressions Beispiel: korrekte Adresse? if ( $ =~ ) {…} Beispiel: Österreichische Postleitzahl? if ( $plz =~ /A\s*-\s*\d{4}$/ ) {…} Beispiel: whitespace vorne und hinten entfernen… $satz =~ s/^\s*(.*?)\s*$/$1/;

12 Institut für Softwarewissenschaft – Universität WienP.Brezany 12 \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)


Herunterladen ppt "Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Programmierungssprache PERL Prof.-Dr. Peter Brezany Institut für Scientific Computing Universität."

Ähnliche Präsentationen


Google-Anzeigen