Übungsblatt 14a Regular Expressions / Pattern Matching |
PI-1 2008/09 |
Assignment #1: Regular expressions for common data formats:
Schreiben Sie folgende (kleinen) Programme, die jeweils ein Kommandozeilenargument erwarten und von diesem Bestimmen, ob es Element einer bestimmten Sprache ist:
Assignment #2: Challenging regular expressions:
Write a regular expression for each of the following sets of binary strings. Use only the basic operations.
Assignment #3: Java Source Code Formatierer:
Schreiben Sie ein Program jb. Java (java beautyfier), das als Eingabe einen syntaktisch korrekten Java Quelltext erwartet und daraus eine HTML-Seite generiert, die den Java-Text optisch etwas aufgewertet darstellt. Dazu gehören:
Hinweis: Diese Regelungen gelten natürlich nicht innerhalb von Zeichenketten bzw innerhalb von Kommentaren
Assignment #4: Telephone UI:
Auf
den Tasten neuerer Telefone befinden sich außer den Nummern auch Buchstaben.
Beispielsweise: 2=a,b,c; 3= d,e,f; 4= g,h,i; usw. Auf diese Weise lassen sich
Worten Zahlen zuordnen, die man über die Telefontastatur eingeben kann. Sie
sollen nun alle die Worte der deutschen Sprache bestimmen, denen auf diese Weise
Ihre Telefonnummer zugeordnet wird.
Hinweis: Dazu benötigen Sie ein Wörterbuch aller (oder zumindest vieler)
deutscher Worte. So etwas können Sie approximativ erstellen, indem Sie z.B. vom
Internet (http://gutenberg.de) öffentlich verfügbare Werke von z.B. Goethe
herunterladen und daraus eine Lister aller dort vorkommenden Worte erzeugen.
Assignment #5: Kranke Sekretärin:
Eine Sekretärin verletzt sich an beiden Händen jeweils an Daumen, Ringfinger und kleinem Finger. Finden Sie das längste Wort, dass diese Sekretärin ohne Benutzung der verletzten Finger auf einer englischsprachigen Tastatur noch eingeben kann, wenn Sie die Finger ausschließlich so benutzt, wie sie es einmal erlernt hat (siehe Bild).
Alternative Formulierung der Aufgabe: Was ist das längste Wort, dass man auf nebenstehender Tastatur nur mit den gelb, grün, blau und orange gekennzeichneten tasten schreiben kann?
Assignment #6: EMail Address Harvester:
Ziel dieser Aufgabe ist es, eine (möglichst
lange) Liste von Email-Adressen zu erstellen. Dazu beginnen wir mit einer Web-Seite
(URL über Kommandozeile einzugeben) und durchsuchen diese nach Email-Adressen.
Danach verfahren wir in gleicher Weise weiter mit all den Web-Seiten, die von
dieser Seite aus referenziert wurden. Dabei soll keine Web-Seite mehrmals
bearbeitet werden, und eine gefundene Email-Adresse soll nicht mehr als einmal
erfasst werden.
Note:
http://java.sun.com/developer/TechTips/1999/tt0923.html#tip1 gibt Tipps zum
finden von Links auf Web-Seiten (sehr gut, aber auch recht kompliziert)