Expressões Regulares no Excel: Como Usar REGEXTEST, REGEXEXTRACT e REGEXREPLACE

O Excel 365 ganhou três funções nativas de expressões regulares: REGEXTEST(texto; padrão; [case_sensitivity]) verifica se um texto corresponde a um padrão, REGEXEXTRACT(texto; padrão; [return_mode]; [case_sensitivity]) extrai a parte do texto que corresponde ao padrão, e REGEXREPLACE(texto; padrão; substituição; [occurrence]; [case_sensitivity]) substitui o trecho encontrado — todas usando a sintaxe de regex no “sabor” PCRE2, e mantendo o nome em inglês mesmo no Excel em português.

Você já bateu de frente com um problema de texto que fórmulas como TEXTOANTES, LOCALIZAR ou PROCURAR simplesmente não davam conta de resolver — como validar se um texto segue um formato específico (um CPF, um código de produto, um e-mail), ou extrair um padrão que pode aparecer em posições diferentes em cada célula?

Sem expressões regulares, esse tipo de validação ou extração de padrão complexo normalmente exigia empilhar várias funções de texto ao mesmo tempo, ou recorrer a uma macro em VBA só para descrever uma regra que, em uma linguagem com regex, se escreve em um único padrão compacto.

Neste artigo iremos mostrar a sintaxe das três novas funções REGEX do Excel, os padrões básicos de expressão regular mais usados no dia a dia de planilha, e um exemplo prático completo de validação e extração de dados.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

REGEXTEST: verificando se um texto corresponde a um padrão

A REGEXTEST retorna VERDADEIRO ou FALSO, indicando se alguma parte do texto corresponde ao padrão informado. Por exemplo, para verificar se uma célula contém uma data no formato dd/mm/aaaa:

=REGEXTEST(A2;”[0-9]+/[0-9]+/[0-9]+”)

O padrão [0-9]+/[0-9]+/[0-9]+ descreve “um ou mais dígitos, seguido de uma barra, seguido de mais dígitos, outra barra, e mais dígitos” — se o texto da célula tiver esse formato em algum ponto, a função retorna VERDADEIRO.

REGEXEXTRACT: extraindo a parte que corresponde ao padrão

A REGEXEXTRACT devolve o trecho do texto que casa com o padrão, em vez de só confirmar se ele existe. O terceiro argumento, return_mode, controla o que é devolvido: 0 (padrão) retorna só a primeira correspondência encontrada, 1 retorna todas as correspondências como uma matriz, e 2 retorna os grupos de captura (partes entre parênteses no padrão) da primeira correspondência. Por exemplo, para extrair todos os horários de um texto:

=REGEXEXTRACT(A2;”[0-9]+:[0-9]+”;1)

Aplicada a um texto como “reunião às 09:30 e 14:00”, essa fórmula com return_mode 1 retorna uma matriz com “09:30” e “14:00”, os dois horários encontrados no texto.

REGEXREPLACE: substituindo o trecho encontrado

A REGEXREPLACE troca a parte do texto que corresponde ao padrão por outro texto informado. Por exemplo, para remover todos os números de um texto, substituindo-os por nada:

=REGEXREPLACE(A2;”[0-9]”;””)

O quarto argumento, occurrence, controla quantas ocorrências trocar: o valor padrão (0) troca todas; um número negativo troca a partir do fim do texto.

Padrões básicos de regex mais úteis no Excel

Alguns blocos de padrão cobrem a maioria dos casos do dia a dia: [0-9] representa um dígito, [A-Za-z] representa uma letra (maiúscula ou minúscula), o sinal de + depois de um grupo significa “uma ou mais vezes”, o * significa “zero ou mais vezes”, e o . (ponto) representa qualquer caractere. Combinando esses blocos, [A-Za-z]+@[A-Za-z]+\.[a-z]+ descreve o formato básico de um e-mail: letras, seguidas de arroba, seguidas de mais letras, um ponto, e a extensão.

Exemplo prático: validando e extraindo o CEP de um endereço completo

Imagine uma coluna de endereços completos digitados livremente, em que o CEP aparece em posições diferentes de cada texto, sempre no formato 00000-000:

A (endereço) B (tem CEP?) C (CEP extraído)
1 Endereço Válido CEP
2 Rua das Flores, 123, CEP 01310-100, São Paulo =REGEXTEST(A2;”[0-9]{5}-[0-9]{3}”) =REGEXEXTRACT(A2;”[0-9]{5}-[0-9]{3}”)
3 Av. Central sem CEP informado =REGEXTEST(A3;”[0-9]{5}-[0-9]{3}”) =REGEXEXTRACT(A3;”[0-9]{5}-[0-9]{3}”)

Na linha 2, a coluna B retorna VERDADEIRO e a coluna C extrai “01310-100” de dentro do texto, mesmo estando no meio da frase. Na linha 3, como não existe nenhum trecho no formato 00000-000, a coluna B retorna FALSO e a coluna C devolve um erro (que pode ser tratado com SEERRO, devolvendo por exemplo “sem CEP”). Repare no {5} e {3} do padrão: eles fixam a quantidade exata de dígitos exigida antes e depois do hífen, garantindo que só o formato correto de CEP seja considerado válido.

Por que não usar só LOCALIZAR, ESQUERDA e DIREITA?

Funções tradicionais de texto continuam sendo a escolha certa para casos simples, como extrair tudo antes de um delimitador fixo. As funções REGEX entram em cena quando o padrão é mais complexo do que um delimitador único — por exemplo, quando a posição do trecho procurado varia de célula para célula, quando é preciso validar um formato inteiro (não só localizar um pedaço), ou quando várias regras precisam ser combinadas em um único critério.

Disponibilidade

REGEXTEST, REGEXEXTRACT e REGEXREPLACE estão disponíveis apenas no Excel 365 (Windows, Mac e Online), como parte das atualizações mais recentes da assinatura. Elas não existem nas versões de compra única (2019, 2021) nem no Google Sheets, que tem seu próprio conjunto de funções de regex (REGEXMATCH, REGEXEXTRACT, REGEXREPLACE) com sintaxe parecida, mas não idêntica.

Perguntas frequentes

As funções REGEX ficam com nome traduzido no Excel em português?

Não. Mesmo na versão em português do Brasil, as três funções mantêm o nome em inglês: REGEXTEST, REGEXEXTRACT e REGEXREPLACE. Os argumentos continuam sendo separados por ponto e vírgula, como em qualquer fórmula no Excel em português.

Preciso saber expressões regulares de outras linguagens de programação para usar essas funções?

Ajuda, mas não é obrigatório: os padrões básicos ([0-9] para dígito, [A-Za-z] para letra, + para “uma ou mais vezes”) já resolvem a maioria dos casos de planilha. O Excel usa o “sabor” PCRE2 de regex, o mesmo usado em várias linguagens de programação populares.

Essas funções substituem PROCURAR, ESQUERDA e DIREITA?

Não totalmente. Para extrações simples, com um delimitador fixo e posição previsível, as funções tradicionais (ou TEXTOANTES/TEXTODEPOIS) continuam mais diretas. As funções REGEX valem a pena quando o padrão é mais complexo ou varia de posição entre as células.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos as três novas funções de expressão regular do Excel 365 — REGEXTEST, REGEXEXTRACT e REGEXREPLACE —, com os padrões básicos mais usados e um exemplo prático de validação e extração de CEP, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Você já tinha ouvido falar das funções REGEX no Excel? Tem algum caso de validação de texto na sua planilha que essas funções resolveriam melhor que PROCURAR e ESQUERDA? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *