• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Back-end
    3. Regex em C#: como utilizar expressões regulares

    Regex em C#: como utilizar expressões regulares

    8 min8 minutos de leitura

    8 min8 minutos de leitura

    Publicado: 03/08/2022

    1. O que é uma expressão regular?
    2. Ok, mas como funcionam as regex?
    3. A classe Regex
    4. Conclusão

    No dia a dia, sempre que possível, procuramos estabelecer alguns padrões para facilitar o entendimento e organização de informações, algo que fazemos naturalmente, afinal estamos sempre buscando uma forma de otimizar a nossa rotina.

    Dentro da área de Programação, também há essa preocupação em melhorar e otimizar informações, vide os padrões de programação, estruturas de dados e algoritmos. Mas, na rotina de uma pessoa programadora, em algum momento ela irá se deparar com a necessidade de trabalhar com cadeias de caracteres e buscar identificar padrões para extrair informações ou validar algum tipo de dado.

    Neste contexto, hoje temos as chamadas expressões regulares, ou o termo abreviado do inglês, regex. Mas o que são? Onde vivem? De que se alimentam? Consigo usar com .NET? Neste artigo vamos conversar um pouco sobre elas. Vamos à leitura!

    O que é uma expressão regular?

    Vamos a algumas definições:

    De acordo com Alfredo Lotar, autor do livro “Como programar com ASP.NET e C#", uma expressão regular define combinações de caracteres que podemos usar para representar partes de uma string.

    Já para Cláudio Ralha, autor do livro Produtividade com C# da Casa do Código:

    Expressões regulares são ferramentas para executar com pouco código tarefas complexas, como localizar e remover várias ocorrências de sequências de caracteres dentro do texto, validar dados informados pelos usuários que estão em um formato específico.

    Então, podemos concluir que uma regex vai definir uma forma de identificar padrões em cadeias de caracteres (strings) e que podemos usá-la para validações de dados.

    Um pouco de história

    A história das expressões regulares está intimamente ligada à teoria da computação, pois ela faz parte da teoria dos automatos e linguagens formais. As regex foram desenvolvidas nos estudos do matemático americano Stephen Cole Kleene, que a princípio chamava de álgebra de conjuntos regulares.

    Os trabalhos de Kleene foram a base para a criação de algoritmos de busca usados na computação. Hoje, aplicamos as regex em editores de texto, em funções de busca e substituição, e nas linguagens de programação como forma de validação de formatos de textos. Por exemplo: quando precisamos validar o formato do campo e-mail de um formulário, podemos usar: /^[a-z0-9.]+@[a-z0-9]+\.[a-z]+\.([a-z]+)?$/i;.

    Então, em resumo, as regex podem ser aplicadas em situações de:

    • Mecanismos de validação de dados de formulários;
    • Encontrar um texto específico em uma string;
    • Representação de padrões. Por exemplo: os números em um CPF.
    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Ok, mas como funcionam as regex?

    Quando usamos regex, a busca pelo caractere, string ou padrão de texto é feita da esquerda para a direita, da mesma forma como lemos um texto (pelo menos de acordo com a leitura ocidental). Essa busca pode ser feita em uma única linha ou em várias delas, além de poder diferenciar letras maiúsculas e minúsculas e inclusive ignorar espaços em branco.

    Vamos acompanhar um exemplo de uma regex para validação de um CPF:

    /^[0-9]{3}.?[0-9]{3}.?[0-9]{3}-?[0-9]{2}/
    

    Na definição de uma regex podemos utilizar dois tipos de caracteres: os literais, usados normalmente em strings, e os metacaracteres, que fazem com que a regex possa processar e manipular informações. Compilamos alguns metacaracteres na tabela a seguir:

    MetaDescrição
    *Indica nenhuma ou várias ocorrências de um caractere
    +Repete pelo menos uma vez um caractere. Exemplo: /a+/
    ^Indica que a pesquisa será feita no início do bloco ou regra
    $Sinaliza que a pesquisa será feita no fim do bloco ou regra
    ?Usado para declarar um caractere como opcional
    |Atua como o operador lógico ou
    ‘Usado para indicar um caractere
    ()Usado para agrupar uma sequência. Exemplo: /(abc)/

    Além deles, as regex também permitem trabalhar com agrupamentos, que podem nos ajudar a criar sub-expressões. Para definir grupos, podemos utilizar (). Na sequência, listamos alguns:

    GruposDescrição
    [aeiou]Considera combinações de vogais
    {n}Indica a quantidade de números retornados
    [a-zA-Z_0-9]Considera letras maiúsculas e minúsculas e números
    {n,m}Indica um intervalo

    Vale a pena destacar que criar uma sentença regex fazendo uso dos símbolos e metacaracteres disponíveis pode ser extremamente trabalhoso. Dividir uma expressão em partes pode nos ajudar, no melhor estilo “dividir para conquistar”.

    Por exemplo: se quisermos selecionar todas as letras e números de um texto, podemos escrever uma expressão que escolha os números [0-9], depois escrever a que seleciona as letras [a-zA-Z]. Por fim, juntamos as partes da expressão como [0-9][a-zA-Z].

    Até aqui vimos que dentre as vantagens na utilização das regex temos a flexibilidade, a performance e a facilidade de uso. Mas após entender a teoria, como podemos fazer o uso das regex com o C#? Para isso precisamos utilizar uma classe Regex - e é isso que vamos conhecer no próximo tópico!

    A classe Regex

    No .NET a principal classe para trabalhar com regex é a de mesmo nome, Regex, que se encontra no namespace System.Text.RegularExpressions. Ela possui uma série de métodos estáticos que nos possibilitam trabalhar com expressões regulares. Por exemplo, se quisermos validar se o valor informado por um usuário é composto somente por números, podemos fazer o seguinte:

    using System.Text.RegularExpressions;
    Console.Write("Informe um valor:  ");
    var caracteres = Console.ReadLine();
    bool ok = Regex.IsMatch(caracteres, "^[0-9]+$");
    if (!ok)
    {
        Console.WriteLine("O valor informado não é um numérico válido.");
    }
    else
    {
        Console.WriteLine("O valor informado é válido.");
    }
    

    Executando o código acima e informando 14589AC, temos como saída o que é mostrado na imagem abaixo:

    Recorte da tela do console onde o usuário informa a string `14589AC` e é mostrado como resultado a mensagem `O valor informado não é um numérico válido`.

    Podemos ainda criar um objeto do tipo Regex que recebe em seu construtor um caractere ou uma expressão composta pelos metacaracteres. Também é possível informar um segundo parâmetro definindo como fazer essa busca.

    Imagine que você precisa validar um CPF de usuário. Ao invés de criar todo um algoritmo, por que não usar uma regex? Observe como poderia ser implementado:

    Console.Write("Informe um cpf para validação: ");
    var cpf = Console.ReadLine();
    Regex regex = new Regex(@"([0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})",RegexOptions.IgnoreCase);
    var combinou = regex.Match(cpf);
    if (combinou.Success)
    {
        Console.WriteLine("CPF no formato válido.");
    }
    else
    {
        Console.WriteLine("CPF inválido.");
    }
    

    Executando o código acima, o usuário informa um CPF contendo somente números ou com a máscara com pontos, criado um objeto da classe Regex que recebe como parâmetro uma expressão para CPF e uma enumeração com o valor de IgnoreCase, que diferencia maiúscula de minúscula.

    Ao executar o método .Match() do objeto, validamos o CPF com a regex definida na criação do objeto. Para isso, é importante trabalharmos o retorno criando um objeto do tipo Match.

    Se quisermos validar, por exemplo, 000.869.630-66, ao executarmos teremos como saída no terminal o seguinte:

    Recorte da tela do console onde o usuário informa o CPF `000.869.630-66` e é mostrado como resultado a mensagem `CPF no formato válido.`

    Ok, mas e se o CPF para validação não estiver com a máscara de CPF? Por exemplo, 99156503024. E aí?

    Recorte da tela do console onde o usuário informa a o CPF `99156503024` e é mostrado como resultado a mensagem `CPF no formato válido.`

    Abaixo apresentamos algumas opções da enumeração RegexOptions que podemos usar quando criamos nossos objetos regex:

    ValorDescrição
    IgnoreCasePara ignorar maiúsculas ou minúsculas
    CultureInvariantNão considerar idiomas
    MultilineRealizar a pesquisa em múltiplas linhas
    SingleLineRealizar a pesquisa em uma única linha
    RightToLeftRealizar a pesquisa da direita para esquerda
    IgnorePatternWhitespaceIgnorar padrões com espaço em branco

    Usando o .IsMatch()

    Com o IsMatch podemos validar se um valor informado combina com a expressão regular definida. O retorno do método é um booleano e recebe como parâmetro uma string. Usando o mesmo exemplo do CPF, temos:

    Console.Write("Informe um cpf para validação: ");
    var cpf = Console.ReadLine();
    Regex regex = new Regex(@"([0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})", RegexOptions.IgnorePatternWhitespace);
    if (regex.IsMatch(cpf))
    {
        Console.WriteLine("CPF válido.");
    }
    else
    {
        Console.WriteLine("CPF inválido.");
    }
    

    Usando o .Match()

    Este método pode ser usado para buscar uma string ou expressão regex definida na classe. Por exemplo:

    var busca = "Mergulhando em tecnologia com a Alura.";
    Regex regex = new Regex("Alura",RegexOptions.IgnoreCase);
    Match match = regex.Match(busca);
    if (match.Success)
    {
        Console.WriteLine("string encontrada no texto.");
    }
    else
    {
        Console.WriteLine("string não encontrada.");
    }
    

    Por meio desses exemplos, conseguimos enxergar o poder que temos na utilização de expressões regulares! E no .NET, usando a classe Regex, fica ainda mais fácil!

    Conclusão

    Neste artigo nosso objetivo foi apresentar o que são as regex, desde a definição até a aplicabilidade em programação. Entendemos que aplicar as regex para criar expressões que validam a formatação de caracteres, ou que possibilitam a pesquisa de conteúdo específico, pode ser uma valiosa ferramenta para as pessoas desenvolvedoras, independentemente da linguagem.

    Diferentes linguagens têm bibliotecas próprias para trabalhar esse recurso e no .NET não é diferente! Por isso conhecemos a classe Regex, que encapsula funcionalidades permitindo trabalhar as regex no código C#.

    Também observamos que apesar da facilidade oferecida pela plataforma no momento de usar regex, escrevê-las pode ser algo desafiador, já que precisamos resumir várias informações em uma única expressão.

    Para saber mais sobre expressões regulares, veja também:

    • JavaScript replace: manipulando Strings e regex

    • Expressões regulares: capturando textos de forma mágica

    • Classe Regex Documentação

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de andre-bessa1

      Autor(a)

      andre-bessa1

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 22/10/2017

      Validando CPF com Java através do Stella

      Ler mais
    • Alura
      24/03/2020

      QuarentenaDev: Aprenda a Programar!

      Ler mais
    • como-se-tornar-freelancer
      6 dias atrás

      Como se tornar freelancer: guia para tech freelancing

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura