Você é um arauto do palco em uma conferência internacional. Seu trabalho é anunciar os palestrantes, lembrar cada um quando o tempo acabar e moderar a sessão de perguntas e respostas. Você recebe com antecedência uma lista de palestrantes do seu palco e precisa transformá-los em cartões de moderação.
Como a lista segue uma formatação específica, você decide escrever um pequeno programa que analisa a lista fornecida usando expressões regulares (regex) e gera os cartões de moderação automaticamente.
Este exercício não é sobre aprender expressões regulares. É sobre aprender a usar regex em $lang. As dicas contêm uma expressão regular que você pode usar se não quiser escrever uma por conta própria.
A lista que você recebe contém as seguintes informações para cada palestra:
Uma entrada completa tem o seguinte formato:
»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
Aqui, o título é Speedrunning 101, quem fala se chama Sasha Duda Krall, vem de GDQU e usa os pronomes they/them.
A palestra começa às 13:00, haverá uma sessão de perguntas e respostas a partir das 13:20, e a sessão inteira termina às 13:30.
Como nomes podem conter hífens comuns -, uma meia-risca – é usada para separar o nome de quem fala do nome da palestra.
O cartão de moderação que seu programa deve gerar para essa palestra é assim:
- 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
A lista inteira pode ser assim:
»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
Os cartões correspondentes são:
- 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
Alguns pontos a observar:
É mais fácil usar uma ferramenta de criação de regex como regex101 ou RegExr para fazer isso.
!!! warning Certifique-se de definir o mecanismo/dialeto de regex como $CHANGE_ME.
Se você é novo em regex ou tem dificuldade para criar uma expressão que capture todas as informações necessárias de uma vez, também pode definir várias expressões menores que capturem partes das informações.
Use a expressão da primeira parte e implemente uma função que recebe uma linha como entrada, captura as informações dela e retorna o cartão de moderação gerado de acordo com a especificação acima.
Possíveis casos de teste futuros devem seguir as seguintes diretrizes:
»«, e um nome não deve conter vírgulas.[a-zA-Z] ou similares para o nome, título ou organização não devem conseguir passar nos testes.