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

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#: fundamentos do trabalho com a classe Regex

Expressões regulares (regex) são uma ferramenta poderosa para buscar, extrair, substituir e validar strings com base em um padrão definido. Em C# (.NET), todo o trabalho com expressões regulares está concentrado no namespace System.Text.RegularExpressions e na classe central Regex. Neste artigo, vamos explorar os recursos básicos e avançados das expressões regulares em C# com exemplos práticos.



1. Classe Regex: métodos principais e criação de padrões

Para trabalhar com expressões regulares em C#, você precisa incluir o namespace:

using System.Text.RegularExpressions;

A classe Regex fornece vários métodos essenciais:

  • IsMatch — verifica se a string contém uma correspondência com o padrão.
  • Match — retorna a primeira correspondência.
  • Matches — retorna todas as correspondências.
  • Replace — substitui as correspondências encontradas pela string especificada.
  • Split — divide a string com base nas correspondências.

Exemplo simples de validação de email:

string email = "user@example.com";string pattern = @"^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$";bool isValid = Regex.IsMatch(email, pattern);Console.WriteLine(isValid); // True

Observe o símbolo @ antes da string — trata-se de uma string verbatim, que simplifica a escrita de barras invertidas (\\) nos padrões.



2. Busca e extração de dados: métodos Match e Matches

O método Match retorna um objeto Match, que contém informações sobre a primeira correspondência. Se não houver correspondências, a propriedade Success será false.

Exemplo de extração de número de telefone de um texto:

string text = "Ligue para +7 (123) 456-78-90 ou +7 (987) 654-32-10";string pattern = @"\\+7\\s?\\(\\d{3}\\)\\s?\\d{3}-\\d{2}-\\d{2}";MatchCollection matches = Regex.Matches(text, pattern);

foreach (Match match in matches){ Console.WriteLine(match.Value);}// Saída:// +7 (123) 456-78-90// +7 (987) 654-32-10

O método Matches retorna uma coleção de todas as correspondências. Você também pode usar grupos de captura para extrair partes específicas:

string text = "ID: 12345, Preço: 999.99";string pattern = @"Preço:\\s*(\\d+\\.?\\d*)";Match match = Regex.Match(text, pattern);

if (match.Success){ string price = match.Groups[1].Value; Console.WriteLine($"Preço: {price}"); // Preço: 999.99}

Os grupos de captura são indicados por parênteses () no padrão. O grupo zero corresponde a toda a correspondência, e os grupos de 1 a N são as substrings capturadas.



3. Substituição e divisão de strings: Replace e Split

O método Replace permite substituir correspondências de forma flexível. Suporta referências inversas ($1, $2, etc.) para inserir grupos capturados.

Exemplo de formatação de data de "YYYY-MM-DD" para "DD.MM.YYYY":

string date = "2025-03-15";string pattern = @"(\\d{4})-(\\d{2})-(\\d{2})";string replacement = "$3.$2.$1";string result = Regex.Replace(date, pattern, replacement);Console.WriteLine(result); // 15.03.2025

O método Split divide a string com base nas correspondências do padrão. É útil para analisar CSV ou logs:

string data = "apple;banana;cherry;grape";string pattern = @";";string[] fruits = Regex.Split(data, pattern);foreach (var fruit in fruits){    Console.WriteLine(fruit);}// Saída:// apple// banana// cherry// grape

Você também pode usar separadores mais complexos, como múltiplos espaços ou sinais de pontuação:

string text = "um   dois,três;quatro";string[] parts = Regex.Split(                

Blogs

Book Recommendations