Du bist Bühnenherold auf einer internationalen Konferenz. Deine Aufgabe ist es, die Vortragenden anzukündigen, sie zu erinnern, wenn ihre Zeit abgelaufen ist, und die Q&A-Session zu moderieren. Du bekommst im Voraus eine Liste der Vortragenden auf deiner Bühne und musst daraus Moderationskarten machen.
Da die Liste einem bestimmten Format folgt, beschließt du, ein kurzes Programm zu schreiben, das die Liste, die du bekommst, mit regulären Ausdrücken (Regex) parst und die Moderationskarten automatisch erzeugt.
In dieser Übung geht es nicht darum, reguläre Ausdrücke zu lernen. Es geht darum, Regex in $lang zu verwenden. Die Hinweise enthalten einen regulären Ausdruck, den du verwenden kannst, wenn du keinen eigenen schreiben möchtest.
Die Liste, die du bekommst, enthält für jeden Vortrag die folgenden Informationen:
Ein vollständiger Eintrag hat das folgende Format:
»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
Hier ist der Titel Speedrunning 101, die Vortragende heißt Sasha Duda Krall, kommt von GDQU und verwendet die Pronomen they/them.
Der Vortrag beginnt um 13:00, die Q&A-Session startet um 13:20, und die gesamte Session endet um 13:30.
Da Namen normale Bindestriche - enthalten können, wird ein Halbgeviertstrich – verwendet, um den Namen der Vortragenden und den Vortragstitel zu trennen.
Die Moderationskarte, die dein Programm für diesen Vortrag erzeugen soll, sieht so aus:
- Our next speaker is Sasha Duda Krall, from GDQU
- Their talk is called »Speedrunning 101«
- They will answer your questions in the Q&A session at the end of the talk, starting at 13:20
13:00 - 13:20 - 13:30
Die gesamte Liste kann so aussehen:
»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
»How I learned to say Farewell« – Madeline (she/her). Start: 13:40, Q&A: 14:00, End: 14:05
»How To Find a Good Title For Your Conference Talk« – Vítězslav Kruse (he/him). Start: 14:15, End: 14:40
»Why Emoji Matter❣« – Ash van Amelsvoort, from the University of 🧬🧪⚛. Start: 14:50, Q&A: 15:05, End: 15:10
»Can dogs look up?« – Kira "k1ralli" Sørensen. Start: 20:50, Q&A: 21:05, End: 21:10
Die zugehörigen Karten sehen so aus:
- Our next speaker is Madeline
- Her talk is called »How I learned to say Farewell«
- She will answer your questions in the Q&A session at the end of the talk, starting at 14:00
13:40 - 14:00 - 14:05
- Our next speaker is Vítězslav Kruse
- His talk is called »How To Find a Good Title For Your Conference Talk«
- There will not be a Q&A session
14:15 - NO Q&A - 14:40
- Our next speaker is Ash van Amelsvoort, from the University of 🧬🧪⚛
- Ash's talk is called »Why Emoji Matter❣«
- Ash will answer your questions in the Q&A session at the end of the talk, starting at 15:05
14:50 - 15:05 - 15:10
- Our next speaker is Kira "k1ralli" Sørensen
- Kira's talk is called »Can dogs look up?«
- Kira will answer your questions in the Q&A session at the end of the talk, starting at 21:05
20:50 - 21:05 - 21:10
Ein paar Dinge, die du beachten solltest:
Am einfachsten verwendest du dafür ein Regex-Builder-Tool wie regex101 oder RegExr.
!!! warning Achte darauf, dass du als Regex-Engine bzw. -Flavor $CHANGE_ME einstellst.
Wenn du neu bei Regex bist oder Schwierigkeiten hast, einen Ausdruck zu erstellen, der alle benötigten Informationen auf einmal erfasst, kannst du auch mehrere kleinere Ausdrücke definieren, die jeweils Teile der Informationen erfassen -
Verwende den Ausdruck aus dem ersten Teil und implementiere eine Funktion, die eine Zeile als Eingabe entgegennimmt, die Informationen daraus erfasst und die erzeugte Moderationskarte gemäß der obigen Spezifikation zurückgibt.
Mögliche zukünftige Testfälle sollten die folgenden Richtlinien erfüllen:
»« enthalten, ein Name keine Kommas.[a-zA-Z] oder Ähnliches verwenden, sollten die Tests nicht bestehen können.