[C#] Grupo nomeado em regex
Regex é um padrão usado para descrever parte de um texto, e pode ser utilizado para localizar substrings que correspondam a um padrão dentro de um texto. Por exemplo, pode ser usado para encontrar números, e-mails, links ou qualquer outro padrão de caracteres.
Regex permite o uso de grupos para capturar partes específicas do texto dentro de um padrão.
O exemplo em C# abaixo demonstra como extrair todos os endereços de e-mail de uma string. O padrão regex usado para e-mails foi simplificado para facilitar a leitura, e não deve ser usado em produção.
Sem grupo nomeado
public static IEnumerable<Mail> ExtractMail(string input)
{
var pattern = @"([a-z]+)@([a-z]+(.[a-z]+)*)";
var regex = new Regex(pattern, RegexOptions.Compiled);
foreach (Match match in regex.Matches(input))
{
yield return new Mail(
username: match.Groups[1].Value,
domain: match.Groups[2].Value);
}
}
Com grupo nomeado
public static IEnumerable<Mail> ExtractMail(string input)
{
var pattern = @"(?<username>[a-z]+)@(?<domain>[a-z]+(.[a-z]+)*)";
var regex = new Regex(pattern, RegexOptions.Compiled);
foreach (Match match in regex.Matches(input))
{
yield return new Mail(
username: match.Groups["username"].Value,
domain: match.Groups["domain"].Value);
}
}