1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.

Slides:



Advertisements
Ähnliche Präsentationen
Zusammenfassung der Vorwoche
Advertisements

Bonn-to-code.net Keine Angst vor Regulären Ausdrücken Martin Winkler
10. Grundlagen imperativer Programmiersprachen
Verifizieren versus Berechnen
Standortfaktoren INTERN - Ausdrucksstark präsentieren.
Der Einstieg in das Programmieren
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Tricks mit Zahlen. Kapitel 2 © Beutelspacher Mai 2004 Seite 2 Idee / Aufgaben In jeder Woche stelle ich Ihnen einen Zaubertrick mit Zahlen vor. Ihre Aufgaben:
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Parsing regulärer Ausdrücke
Perl-Grundlagen Teile der Präsentation von A. Grupp,
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Klausur „Diskrete Mathematik II“
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Christian Schindelhauer
Die Skriptsprache Perl (3) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Präsentation Teil 2a Grundfunktionen
Inhalte und Maßnahmen eingegeben haben,
Berechnung des Osterdatums
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
Stunde 6, 7 Klasse 4 Wo lernen wir.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
...ich seh´es kommen !.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Wir üben die Malsätzchen
FORTRAN 77.
Präsentation läuft auch vollautomatisch ab … wie du möchtest
Auslegung eines Vorschubantriebes
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem z/OS Space HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a Einführung in Reguläre Ausdrücke.
Dynamische Webseiten-Generierung
Analyseprodukte numerischer Modelle
2014 Januar 2014 So Mo Di Mi Do Fr Sa So
FRÜHLING.
DATEISPEICHER in der S P S
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
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.
programmieren des casio FX-7400GII
Der Erotik Kalender 2005.
Familie Beutner, Konrad-Voelckerstrasse, Edenkoben/Pfalz, Tel:
Lösung Hausaufgabe 4-1 #!perl -w $infile = "daten4-1.txt"; $count1 = $count2 = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ $count2 +=
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
1 Lösung Hausaufgabe 5-1 Seite 1 #!perl -w # Datei Oeffnen und Variablen initialisieren $infile = "daten5-3.txt"; $im=$iw=$sm=$sw=0; open (IN,$infile)
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Programmierungssprache PERL
1 Tagesüberblick 7 Lösung Hausaufgabe/Fragen mehrdimensionale Datenstrukturen Module Fehlersuche Zusammenfassung Feedback.
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Passwortregeln Jedes System der FIRMA ist durch eine Passwortsicherung vor unerlaubtem Zugriff geschützt.
Regular Expressions HBU-LINUX-2003 Adduser.sh? My_user_Verw.sh? AufgUser.sh? Wo ist das Script ??????? /home/donald ? /home ? /tmp ?
Perl: pattern matching and regular expressions
 Präsentation transkript:

1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche

2 Mustervergleich - Patternmatching - Reguläre Ausdrucke / regular expressions - erweiterte Möglichkeit nach Mustern in Zeichenketten zu suchen

3 Operatoren für Mustervergleich m/Muster/[g][i][..]# match / finde /Muster/[g][i][..] # m kann wegfallen falls / # als Begrenzer verwendet # werden. s/Muster/blabla/[g][i][n] # substitute/ersetze # g: global i:ignore case n: Anzahl Substitutions # Weitere Optionen vorhanden. # Wirkt auf $_

4 Beispiel #!perl -w $_="abcdefghiabcdefghi"; $result=/def/; # match print "\$result:$result\n"; if (/def/){ print"drin\n" }; $result = s/efg/E F G /g;# substitute print "\$result:$result\n";# Anzahl Substitutions print ;

5 Ergebnis $result:1 drin $result:2 abcdE F G hiabcdE F G hi

6 Beispiele /XYZ/# Suche XYZ m/bac/# Suche bac Suche nach /ab /bla/i# Suche bla ohne Berück- # sichtigung von Groß- / # Kleinschreibung s/abc/def/# Ersetze abc durch def s/abc/def/g# Ersetze alle abc durch def

7 Bindung an andere Variablen $zeile =~ /inhalt/# zeile enthält inhalt? $zeile !~ /inhalt/# zeile enhält inhalt # nicht? $zeile =~ m/inhalt/# zeile enthält inhalt? $zeile !~ m/inhalt/# zeile enhält inhalt # nicht? $zeile =~ s/a/b/# ersetze alle a in Zeile # durch b

8 Beispiel 1 #!perl -w $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ($zeile= ) { if ($zeile =~ /XYZ/) { print $zeile; } close (INFO);

9 Beispiel 2 #!perl -w $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ( ) { if (/XYZ/){ print; } close (INFO);

10 Beispiel 3 & 4 #!perl -w $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ( ) {if (/XYZ/){print}} close (INFO); open (INFO,$file) || die "Oeffnen $file $!"; while ( ) {print if /XYZ/} close (INFO);

11 Spezielle Zeichen (Platzhalter).# Jedes einzelne Zeichen außer newline ^# Zeichenkettenanfang $# Zeichenkettenende *# kein, ein oder mehrere Zeichen wie das # vorherige Zeichen +# ein oder mehrere Zeichen wie das # vorherige Zeichen ?# kein oder ein Zeichen wie das # vorherige Zeichen

12 Beispiel $file = "daten.txt"; open (INFO,$file) || die "Oeffnen $file $!"; while ( ) { if (/X.Z/) {print}# Beachte: keine }# Konkatenation close (INFO);# sondern Platzhalter

13 Übungen t.e ^A s$ als* als+ als?.* ^$ # Niemals das einschließen in delimiter // vergessen !! # t Zeichen e: tae tee tce # A am Zeichenkettenanfang # s am Ende der Zeichenkette # al und beliebig s: al als alss alsss... # als und beliebig s: als alss alsss... # al und kein oder ein s: al als # Kein oder beliebige Zeichen außer newline # Leere Zeichenkette

14 Aufgaben 4-1) Lesen Sie die Datei daten4-1.txt ein und geben Sie alle Zeilen aus, deren zweiter bis vierter Buchstabe „aus“ enthält ( z. B. Haus, Maus etc. ) 4-2) Lesen Sie die Datei daten4-1.txt ein und ersetzen Sie jeweils die letzten drei Zeichen einer Zeile durch die Zeichenfolge xyz und geben alle Zeilen in eine zweite Datei aus.

15 Weitere Möglichkeiten: Klassen [qjk]# Entweder q oder j oder k [^qjk]# Weder q noch j noch k [a-z]# Beliebiger Kleinbuchstabe [^a-z]# Kein Kleinbuchstabe [a-zA-Z]# Beliebiger Buchstabe

16 [a-z]+# Mindestens ein Kleinbuchstabe # Es können alle Vervielfacher # verwendet werden

17 Weitere Möglichkeiten : Sonderzeichen \n# Zeilenvorschub ( newline ) \t# Tabulator \s# Whitespace ( Leerz., Tab., Newline ) \S# kein Whitespace \d# Ziffer ( digit ) \D# keine Ziffer \w# Buchstabe ( word ) [a-zA-Z] !keine Umlaute! \W# kein Buchstabe

18 Weitere Möglichkeiten: Gruppen \\# Mit \ werden Zeichen maskiert (H|Feldm)aus # Haus oder Feldmaus (H|L|Kl)aus # Haus, L oder Klaus # Mit Klammern gruppieren # | = oder

19 Mustererkennung mit Variablen $_="Haus\n"; $b="a"; if (/$b/) {print}; # Einfache Benutzung Variabler if (/${b}u/) {print} # Variablen als Teilstring s/H$b/Z${b}x/;# Auch im zweiten Feld print; s/$bu/u$b/;# FALSCH Variable $bu statt $b # wird adressiert

20 Aufgaben 4-3) Lesen Sie die Datei daten4-1.txt ein und zählen Sie alle Zeilen, die ein x oder y enthalten. 4-4) Lesen Sie die Datei daten4-1.txt ein und zählen Sie alle Zeilen, die Laster oder Pflaster enthalten. 4-5) Lesen Sie die Datei daten4-1.txt ein und wandeln alle x oder X in Y um und geben das Ergebnis aus.

21 Aufgaben 4-6) Lesen Sie den Verzeichniseintrag, in dem die Beispieldateien enthalten sind, ein und geben Sie alle Dateien die die Erweiterung.pl haben aus. 4-7) Wie Aufgabe 4-6 nur berücksichtigen Sie die Möglichkeit, daß die Erweiterung auch in Groß- und Kleinbuchstaben geschrieben sein kann.

22 Hausaufgabe 4-1 Lesen Sie die Datei daten4-1.txt ein und wandeln alle a in B um. Zählen Sie die Zeilen in denen dies passiert ist. Zählen Sie die Anzahl der Ersetzungen. Geben das Ergebnis aus

23 Lösung 4-1 #!perl -w $file = "daten4-1.txt"; open (INFO,$file) || die "Oeffnen: $file $!"; while ( ) { if (/^.aus/) {print}; } close (INFO);

24 Lösung 4-2 #!perl -w $infile = "daten4-1.txt"; $ofile = ">output"; open (IN,$infile) || die "Oeffnen: $infile $!"; open (OUT,$ofile) || die "Oeffnen: $ofile $!"; while ( ){ s/...$/xyz/; print OUT; } close (IN); close (OUT);

25 Lösung 4-3a $infile = "daten4-1.txt"; $count = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ if (/[xy]/) {$count++}; } close (IN); print "$count Zeilen mit x oder y sind drin.";

26 Lösung 4-3b $infile = "daten4-1.txt"; $count = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ $count += /[xy]/; } close (IN); print "$count Zeilen mit x oder y sind drin.";

27 Lösung 4-4 $infile = "daten4-1.txt"; $count = 0; open (IN,$infile) || die "Oeffnen: $infile $!" ; while ( ){ if (/(L|Pfl)aster/) {$count++}; } close (IN); print "$count Zeilen mit..aster sind enthalten.";

28 Lösung 4-5a $infile = "daten4-1.txt"; $count = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ $count += s/[xX]/Y/g;# Beachte das g print; } close (IN); print "Ersetzungen: $count";

29 Lösung 4-5b $infile = "daten4-1.txt"; $count = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ $count += s/x/Y/gi; print; } close (IN); print "Ersetzungen: $count";

30 Lösung 4-6 #!perl -w $infile = "dir |"; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ if (/\.pl$/){print};# Beachte /\ ist nicht ^ } close (IN);

31 Lösung 4-7 #!perl -w $infile = "dir |"; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ if(/\.pl$/i){print};# Beachte /\ ist nicht ^ } close (IN);