Okay, los geht’s mit dem nächsten Modul! Diesmal dreht sich alles um
Regex – oder auch „reguläre Ausdrücke“. Klingt fancy, oder? Aber
keine Sorge, das ist gar nicht so kompliziert, wie es vielleicht
aussieht. Die Aufgabe ist ganz einfach: Ich bekomme eine Regex
vorgegeben und muss damit alle Wörter finden, die dem Muster
entsprechen. Im Code Editor kann ich mehrere Wörter schreiben aber
muss sie mit einem Komma trennen. Jedes Mal, wenn ich ein passendes,
einzigartiges Wort finde, bekomme ich einen Punkt.
Es wird also Zeit, den Detektiv in mir zu wecken und nach den
versteckten Mustern in den Wörtern zu suchen. Denn hier gilt: Je
cleverer ich bin, desto mehr Punkte kann ich sammeln. Klingt nach
einem spaßigen Rätsel, oder? Let’s go!



Komm schon Maxin, denk nach! Vielleicht brauche ich einen kleinen Boost.
Ich erinnere mich noch, als ich das erste Mal mit Regex – also regulären Ausdrücken – gearbeitet habe. Anfangs schien das ziemlich kompliziert, aber eigentlich ist es total praktisch! Im Grunde geht es darum, Muster zu erstellen, um bestimmte Wörter oder Zeichenfolgen zu finden.
Ein paar Beispiele sind mir noch besonders im Kopf geblieben:
-
a
findet jeden Buchstaben „a“ in einem Wort. -
.
steht für „irgendein Zeichen“, also egal was kommt. -
[a-z]
sucht nach einem beliebigen Kleinbuchstaben.
Ich nutze Regex immer dann, wenn ich präzise nach bestimmten Mustern suchen will. Hier ist eine kleine Tabelle, die mir damals sehr geholfen hat, um die wichtigsten Funktionen schnell im Kopf zu haben:
Regex-Symbol | Bedeutung | Beispiel |
---|---|---|
. |
Ein beliebiges Zeichen | a.b findet „aab“, „acb“, usw. |
^ |
Anfang einer Zeile |
^abc findet Wörter, die mit „abc“ beginnen
|
$ |
Ende einer Zeile |
xyz$ findet Wörter, die mit „xyz“ enden
|
* |
Null oder mehr Wiederholungen | a* findet „a“, „aa“, „aaa“, usw. |
+ |
Eine oder mehr Wiederholungen | a+ findet „a“, „aa“, „aaa“, usw. |
? |
Null oder ein Vorkommen | ab? findet „a“ und „ab“ |
[abc] |
Sucht nach einem der Zeichen „a“, „b“ oder „c“ | [bcd]og findet „bog“, „cog“, „dog“ |
[a-z] |
Sucht nach einem Zeichen zwischen a und z | [a-z]og findet „bog“, „cog“, „dog“ |
\d |
Sucht nach einer Ziffer (0-9) |
\d{3} findet genau 3 Ziffern, z.B. „123“
|
Mit diesen Grundlagen komme ich immer gut zurecht. Jetzt heißt es, das Gelernte direkt im Spiel anzuwenden und die passenden Wörter zu finden!
VIRTUAL STUDIO MAXIN EDITION
?
Regexer
Schreibe Wörter, die auf folgende RegEx matchen aber beachte
alle mit einem Komma zu trennen:
/(?<![a-zA-Z])(?:(?:P(?:a(?:y(?:m(?:e(?:n(?:t)?)?)?)?)?)|I(?:B(?:M(?:M(?:a(?:i(?:n(?:f(?:r(?:a(?:m(?:e(?:$|[^a-zA-Z]))?)?)?)?)?)?)?)?)?)|B(?:u(?:n(?:d(?:e(?:s(?:b(?:a(?:n(?:k(?:$|[^a-zA-Z]))?)?)?)?)?)?)?)|E(?=\w*?[a-zA-Z])?M(?=\w*?[a-zA-Z])?I(?=\w*?[a-zA-Z])?P(?:[z]{0,4})?|C(?=\w*?[a-zA-Z])?y(?=\w*?[a-zA-Z])?b(?=\w*?[a-zA-Z])?e(?=\w*?[a-zA-Z])?r(?:[z]{0,4})?S(?=\w*?[a-zA-Z])?e(?=\w*?[a-zA-Z])?c(?=\w*?[a-zA-Z])?u(?=\w*?[a-zA-Z])?r(?=\w*?[a-zA-Z])?i(?=\w*?[a-zA-Z])?t(?=\w*?[a-zA-Z])?y(?:[z]{0,4})?))(?:(?=[^a-zA-Z])|$)/