Tu es héraut de scène à une conférence internationale. Ton rôle est d'annoncer les intervenants, de leur rappeler quand leur temps est écoulé et de modérer la session de questions-réponses. On te donne à l'avance la liste des intervenants de ta scène, et tu dois la transformer en fiches de modération.
Comme la liste suit un format bien particulier, tu décides d'écrire un petit programme qui analyse la liste que l'on te donne à l'aide d'expressions régulières (regex) et génère automatiquement les fiches de modération.
Cet exercice ne porte pas sur l'apprentissage des expressions régulières. Il s'agit d'apprendre à utiliser les regex en $lang. Les indices contiennent une expression régulière que tu peux utiliser si tu ne veux pas en écrire une toi-même.
La liste que l'on te donne contient les informations suivantes pour chaque présentation :
Une entrée complète se présente sous la forme suivante :
»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
Ici, le titre est Speedrunning 101, l'intervenant s'appelle Sasha Duda Krall, vient de GDQU et utilise les pronoms they/them.
La présentation commence à 13:00, une session de questions-réponses commencera à 13:20, et la session entière se termine à 13:30.
Comme les noms peuvent contenir des tirets ordinaires -, c'est un tiret demi-cadratin – qui sépare le nom de l'intervenant du titre de la présentation.
La fiche de modération que ton programme doit générer pour cette présentation ressemble à ceci :
- 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
La liste complète peut ressembler à ceci :
»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
Les fiches correspondantes sont :
- 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
Quelques points à noter ici :
Le plus simple est d'utiliser un outil de construction de regex comme regex101 ou RegExr.
!!! warning Assure-toi de régler le moteur de regex (flavor) sur $CHANGE_ME.
Si tu débutes avec les regex, ou si tu as du mal à créer une expression qui capture d'un coup toutes les informations nécessaires, tu peux aussi définir plusieurs expressions plus petites qui capturent chacune une partie des informations.
Utilise l'expression de la première partie et implémente une fonction qui prend une ligne en entrée, en capture les informations et renvoie la fiche de modération générée conformément aux spécifications ci-dessus.
Les éventuels cas de test futurs devraient respecter les règles suivantes :
»«, et un nom ne doit pas contenir de virgules.[a-zA-Z] ou équivalent pour le nom, le titre ou l'organisation ne doivent pas pouvoir passer les tests.