Eres el heraldo del escenario en una conferencia internacional. Tu trabajo es anunciar a los ponentes, recordarles cuándo se les acaba el tiempo y moderar la sesión de preguntas y respuestas. De antemano te dan una lista con los ponentes de tu escenario y tienes que convertirla en tarjetas de moderación.
Como la lista sigue un formato particular, decides escribir un programa corto que analice la lista que te dan usando expresiones regulares (regex) y genere automáticamente las tarjetas de moderación.
Este ejercicio no se trata de aprender expresiones regulares. Se trata de aprender a usar regex dentro de $lang. Las pistas contienen una expresión regular que puedes usar si prefieres no escribir una propia.
La lista que te dan contiene la siguiente información de cada charla:
Una entrada completa tiene el siguiente formato:
»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
Aquí, el título es Speedrunning 101, el ponente se llama Sasha Duda Krall, es de GDQU y usa los pronombres they/them.
La charla empieza a las 13:00, habrá una sesión de preguntas y respuestas que empieza a las 13:20, y toda la sesión termina a las 13:30.
Como los nombres pueden contener guiones normales -, se usa un guion medio – para separar el nombre del ponente y el de la charla.
La tarjeta de moderación que tu programa debería generar para esa charla se ve así:
- 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 lista completa podría verse así:
»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
Las tarjetas correspondientes son:
- 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
Algunas cosas a tener en cuenta:
Lo más fácil es usar una herramienta para construir regex como regex101 o RegExr.
!!! warning Asegúrate de configurar el motor o sabor de regex en $CHANGE_ME.
Si las regex son nuevas para ti o te cuesta crear una expresión que capture toda la información requerida de una vez, también puedes definir varias expresiones más pequeñas que capturen partes de la información.
Usa la expresión de la primera parte e implementa una función que tome una línea como argumento, capture la información y devuelva la tarjeta de moderación generada según la especificación anterior.
Los posibles casos de prueba futuros deben cumplir con las siguientes pautas:
»«, y un nombre no debe contener comas.[a-zA-Z] o similares para el nombre, el título o la organización no deberían poder pasar las pruebas.