Expressões regulares em C#: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Expressões Regulares em C#: Uma Ferramenta Poderosa para Processamento de Texto



Expressões regulares (regex) são uma ferramenta indispensável para pesquisar, extrair e substituir dados de texto com base em um determinado padrão. Em C# (.NET), o trabalho com expressões regulares é implementado através do poderoso namespace System.Text.RegularExpressions e da classe Regex. Neste artigo, exploraremos as principais capacidades das expressões regulares em C# usando exemplos práticos que ajudarão você a automatizar o processamento de strings.



Fundamentos da Classe Regex em C#



A classe principal para trabalhar com expressões regulares em C# é System.Text.RegularExpressions.Regex. Ela fornece métodos estáticos e de instância para realizar operações de pesquisa, substituição e divisão de strings.



Criando um Objeto Regex



Você pode criar uma instância da classe Regex passando um padrão e, opcionalmente, flags para o construtor:



using System.Text.RegularExpressions;

// Criação simplesRegex regex = new Regex(@"\\d+");

// Com flags (ex.: ignorar maiúsculas/minúsculas)Regex regexIgnoreCase = new Regex(@"hello", RegexOptions.IgnoreCase);


Importante: Em C#, é recomendado usar strings textuais (com o prefixo @) para escrever padrões. Isso permite evitar a necessidade de escapar barras invertidas, tornando o código mais legível.



Métodos Estáticos de Regex



Para operações únicas, é mais conveniente usar métodos estáticos que não exigem a criação de uma instância da classe:



bool isMatch = Regex.IsMatch("Olá, mundo!", @"mundo");Console.WriteLine(isMatch); // True

string result = Regex.Replace("123abc456", @"\\d+", "X");Console.WriteLine(result); // XabcX


Principais Métodos para Trabalhar com Texto



A classe Regex fornece quatro métodos principais: IsMatch, Match, Matches e Split. Vamos ver cada um deles com exemplos.



Método IsMatch — Verificando Correspondência



O método IsMatch retorna um bool indicando se pelo menos uma correspondência com o padrão foi encontrada na string.



string email = "usuario@exemplo.com";string pattern = @"^[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}$";

if (Regex.IsMatch(email, pattern)){ Console.WriteLine("Email é válido");}else{ Console.WriteLine("Email é inválido");}


Este exemplo verifica se a string corresponde a um padrão simples de endereço de email.



Métodos Match e Matches — Encontrando Correspondências



Match retorna a primeira correspondência, enquanto Matches retorna uma coleção de todas as correspondências como um objeto MatchCollection.



string text = "Preço: 1500 rub. Desconto: 200 rub. Total: 1300 rub.";string pattern = @"\\d+";

// Primeira correspondênciaMatch firstMatch = Regex.Match(text, pattern);Console.WriteLine($"Primeiro número: {firstMatch.Value}"); // 1500

// Todas as correspondênciasMatchCollection allMatches = Regex.Matches(text, pattern);Console.WriteLine("Todos os números:");foreach (Match match in allMatches){ Console.WriteLine($" - {match.Value}"); // 1500, 200, 1300}


O objeto Match contém não apenas o valor (Value), mas também a posição na string (Index) e o comprimento (Length).



Método Split — Dividindo uma String



Regex.Split divide uma string em um array de substrings com base em um padrão especificado. É semelhante a String.Split, mas com suporte a expressões regulares.



string data = "João;25;São Paulo;programador";string pattern = @";";

string[] parts = Regex.Split(data, pattern);foreach (string part in parts){ Console.WriteLine(part);}// Saída:// João// 25// São Paulo// programador


Agrupamento e Captura de Dados



Uma das características mais poderosas

Blogs

Book Recommendations