Java Exercises - Regex
Voraussetzung
- Ich kann mit Regex Zeichenketten im Text erkennen und extrahieren.
- Ich verstehe, wie man Regex schrittweise und sicher testet.

Wir stellen dir bei den Übungen jeweils komplette Projekte zur Verfügung. Du musst grundsätzlich nur dort was anpassen, wo die folgende Kommentarzeile steht:
|
|
Alles andere kannst du für den Moment ignorieren. Wir erklären dir die einzelnen Zeilen Schritt für Schritt in den Modulen.
Vorbereitungsarbeiten

Die Anleitung enthält einige Befehle und Fachbegriffe, die dir möglicherweise noch nichts sagen. Mach dir deswegen keine Sorgen – in den kommenden Modulen erklären wir dir alles Schritt für Schritt. Schon bald wirst auch du ein it-ninja sein.
Um die folgenden Aufgaben erfolgreich umzusetzen, führe diese Schritte aus:
Beim ersten Mal:
- IntelliJ IDEA installieren → !*IntelliJ IDEA einrichten
- Git-Repository einrichten → !*Persönliches Git-Repository
Öffne eine !*CMD-Shell und wechsle ins Verzeichnis deines Git-Repositories:
- Stelle sicher, dass alle Dateien im Git-Repository committed sind. Mit git status erhältst du eine Übersicht:
|
|
Falls du bei diesem Befehl einen roten Text siehst, musst du zuerst die aktuellen Dateien sichern:
|
|
Erstelle oder wechsle in den Template Branch:
Beim ersten Mal musst du einen Template Branch erstellen:
|
|
Falls er bereits existiert, kannst du einfach switchen:
|
|
Lade den Source-Code zu den Übungen herunter und entpacke ihn im Root-Verzeichnis deines lokalen Repositories:
[[itninja_localrepo|C:\Users\u123456\repos.local\it-ninjas-lab]]
Den Source-Code findest du hier: Download | Online anschauen
Committe den originalen Source-Code, damit er sicher im Repository gespeichert ist:
|
|
- Erstelle einen neuen Branch, um deine Lösung zu implementieren:
|
|

Hier kannst du auch einen kürzeren Namen wählen. Verwende labs am Anfang des Branch-Namens für Branches, die deinen eigenen Code enthalten.
Stelle dir einen Branch vorerst als Ordner vor. Jeder Ordner enthält eine Version oder einen Stand von deinem Quellcode. Du kannst dann mit git zwischen diesen Ordern hin und her wechseln, sie vergleichen aber später auch zusammenführen.

Du kannst jederzeit einen weiteren Branch erstellen – z. B. wenn du etwas ausprobieren möchtest. Alternativ kannst du auch in der Git-History einen alten Stand wiederherstellen, was aber weniger flexibel ist.
- Starte IntelliJ und öffne mit
File → Open
das Verzeichnis mit dem Source-Code.

src
oder die Datei pom.xml
enthält. Ansonsten wird
IntelliJ Mühe haben, dir das Programm zu kompilieren.Wenn du alles korrekt gemacht hast, findest du das Projekt hier:
- Falls du zum ersten Mal mit IntelliJ arbeitest, findest du !*hier eine Anleitung, wie man ein Programm startet.

Nun bist du bereit, die untenstehenden Aufgaben zu lösen.

Wenn du alle Änderungen gemacht hast und mit der Übung fertig bist, oder einen ‘Zwischenstand’ festhalten willst, führe die folgenden Befehle aus um das Repository auf dem Server zu speichern (von wo du es geklont hast):
Wenn du deine Änderungen auf dem Git-Server sichern willst, musst du das mit einem push
machen.
Beim ersten mal musst du git noch mitteilen, wie der Branch auf dem Git-Server heissen soll:
|
|
Bei weiteren pushes
wird es dann einfacher:
|
|

Die meisten Übungen sind professionell strukturiert – so wie in echten Softwareprojekten. Zu gutem Code gehören auch
Tests, die sicherstellen, dass dein Code wie erwartet funktioniert. Sofern nicht anders erwähnt, kannst du mit
folgendem Befehl im Root-Verzeichnis des Projekts (dort, wo sich auch die pom.xml
befindet) überprüfen, ob du die
Aufgabe korrekt gelöst hast:
|
|
Viel Erfolg!
Aufgabe 1 - E-Mail-Adressen aus einem Text extrahieren
Schreibe eine Regex, die alle E-Mail-Adressen in einem Text findet. Nutze die bereitgestellte Beispieldatei data/mixed.txt
.
</itninja description>
- Beispieleingabe:
Meine Adresse: max.mustermann@example.com; Info: test@mail.de
- Erwartete Treffer:
["max.mustermann@example.com", "test@mail.de"]
Im zur Übung gehörendem Source kannst Du die Änderung an folgender Stelle machen:
src\main\java\ch\itninja\labs\regex\RegexTasks.java:
|
|
Aufgabe 2 - IBAN formatvalidieren
- Beispiele:
CH93 0076 2011 6238 5295 7
,DE89 3704 0044 0532 0130 00
- Hinweis: Landeskürzel (2 Grossbuchstaben), 2 Ziffern Prüfsumme, restliche Zeichen: A–Z oder 0–9.
Im zur Übung gehörendem Source kannst Du die Änderung an folgender Stelle machen:
src\main\java\ch\itninja\labs\regex\RegexTasks.java:
|
|
Aufgabe 3 - Telefonnummern (Schweiz und international)
- Beispiele:
+41 31 987 65 43
,031 987 65 43
Im zur Übung gehörendem Source kannst Du die Änderung an folgender Stelle machen:
src\main\java\ch\itninja\labs\regex\RegexTasks.java:
|
|
Aufgabe 4 - URLs extrahieren
- Beispiele:
https://it-ninjas.ch
,http://example.org/test
Im zur Übung gehörendem Source kannst Du die Änderung an folgender Stelle machen:
src\main\java\ch\itninja\labs\regex\RegexTasks.java:
|
|
Aufgabe 5 - Passwort-Policy prüfen
- Beispiel gültig:
SecuRe!234
- Beispiel ungültig:
password1
Im zur Übung gehörendem Source kannst Du die Änderung an folgender Stelle machen:
src\main\java\ch\itninja\labs\regex\RegexTasks.java:
|
|
Aufgabe 6 - Schweizer Postleitzahlen (CH-PLZ)
- Beispiele gültig:
3007
,1000
- Beispiele ungültig:
0123
,12345
Im zur Übung gehörendem Source kannst Du die Änderung an folgender Stelle machen:
src\main\java\ch\itninja\labs\regex\RegexTasks.java:
|
|
Hinweise
- Teste deine Regex iterativ, nutze Raw-Strings (z. B. in Java
Pattern.compile("...")
) und kleine Testfälle. - Achte darauf, bei Extraktion nicht zu gierig zu matchen und Mehrfachtreffer zu ermöglichen.
- Für IBANs ist eine vollständige Validierung inkl. Prüfziffernrechnung ausserhalb des Regex sinnvoll.