Oi, Diego! Como vai?
Validando datas com expressões regulares é uma habilidade muito útil no dia a dia do desenvolvimento, e você aplicou o conceito de forma clara e organizada.
No seu código, o uso de using System.Text.RegularExpressions já prepara o terreno para trabalhar com o Regex.IsMatch(). A variável var regexData armazena o padrão que verifica se a entrada segue o formato dd/MM/aaaa, e o Console.Write exibe a instrução ao usuário antes de capturar o valor com string dataEvento = Console.ReadLine().
O Console.Clear() é chamado no início para garantir uma tela limpa e organizada antes de qualquer interação. Em seguida, o Console.WriteLine exibe se a data informada é válida ou não. Você também foi além ao incluir duas versões do padrão no comentário, o que demonstra atenção à legibilidade do código.
Vale destacar que a mensagem exibida com Console.Write("Escreva a data do evento (dd/MM/aaaa): ") orienta bem o usuário sobre o formato esperado. Isso torna a experiência mais intuitiva e reduz a chance de erros de digitação ao informar a data do evento.
Uma sugestão para evoluir ainda mais é validar se a data informada realmente existe no calendário, não apenas se ela segue o formato correto. Para isso, o método DateTime.TryParseExact() é uma excelente opção. Veja o exemplo abaixo:
using System.Globalization;
string data = "31/02/2025";
bool dataValida = DateTime.TryParseExact(
data,
"dd/MM/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out DateTime resultado
);
Console.WriteLine(dataValida);
Esse código verifica tanto o formato quanto a existência real da data no calendário. Combinando a sua abordagem com o Regex e essa validação adicional com DateTime.TryParseExact(), você terá uma solução bem mais robusta para o seu projeto de validação de datas.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
Você já tentou combinar o Regex com o DateTime.TryParseExact() em algum projeto para validar datas de forma mais completa? Como foi essa experiência?