perl Interpreter -> laufendes Programm test.c -> C Compiler -> test.exe -> laufendes Progr."> perl Interpreter -> laufendes Programm test.c -> C Compiler -> test.exe -> laufendes Progr.">

Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmierungssprache PERL

Ähnliche Präsentationen


Präsentation zum Thema: "Programmierungssprache PERL"—  Präsentation transkript:

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

2 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 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 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.

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 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 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 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 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 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 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 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 \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 "Programmierungssprache PERL"

Ähnliche Präsentationen


Google-Anzeigen