Funções para “Expressões Regulares” em Excel
Neste artigo vou apresentar-te as 3 novas funções disponíveis no Excel, na categoria de Texto que permitem trabalhar com Expressões Regulares. Vamos lá?
As funções são:
- REGEXTEST: Verifica se qualquer parte do texto fornecido corresponde a uma expressão regular.
- REGEXEXTRACT: Extrai texto de uma cadeia com base numa expressão regular fornecida.
- REGEXREPLACE: substituir texto de uma cadeia por outra cadeia, com base numa expressão regular.
Em primeiro lugar, o que são Expressões Regulares? Expressão Regular ou “regex” é um termo utilizado muitas vezes em programação que define um conjunto de padrões, ou sequencias de caracteres de texto que são usadas para pesquisas de texto. São uteis para identificar correspondências de texto como por exemplo e-mails ou passwords.
Estas funções estão disponíveis para já, à data do artigo, na versão Beta 2406 (Build 17715.20000) ou superior.
Não percas aqui o cenário de exemplo que partilho contigo, assim como o processo passo a passo. Se tiveres alguma dúvida, envia-nos a uma mensagem... ficamos à tua espera!
Faça aqui o download dos seus ficheiros de apoio!
Função REGEXTEXT
A função REGEXTEXT permite então ao utilizador verificar se qualquer parte do texto fornecido corresponde a uma expressão regular ("regex"). A função devolve um valor BOOLEANO: VERDADEIRO se existir uma correspondência e FALSO se não existir.
Esta função determina se qualquer parte do texto corresponde ao padrão.
A sintaxe da função é:
=REGEXTEXT(texto; padrão;[sensível_a_maiúsculas_e_minusculas])
- Texto: O texto ou a referência a uma célula que contém o texto com o qual pretende corresponder.
- Padrão: A expressão regular ("regex") que descreve o padrão de texto que pretende corresponder.
- Sensível a…: Determina se a correspondência é sensível a maiúsculas e minúsculas. Por predefinição, a correspondência é sensível às maiúsculas e minúsculas. Neste argumento podemos colocar uma das opções:
- 0: Sensível a maiúsculas
- 1: Não sensível a maiúsculas
Para todas as funções existem alguns padrões que o Excel reconhece, contudo podemos utilizar outros tipos de padrões mais “universais” para identificar na expressão regular. Os padrões reconhecidos pelo Excel são:
- "[0-9]": qualquer dígito numérico
- "[a-z]": um caráter no intervalo de a… a …z
- ".": qualquer caráter
- "a": o caráter "a"
- "a*": zero ou mais "a"
- "a+": um ou mais "a"
Exemplos para a Função REGEXTEXT
Identificar numa célula, um padrão numérico…
=REGEXTEST(B5;"[0-9]";0)
No resultado podemos verificar os valores booleanos devolvidos: VERDADEIRO / FALSO
Identificar numa célula, um padrão com caracteres de “a” a “z” sensível a maiúsculas e minúsculas…
=REGEXTEST(B5;"[a-z]";0)
Identificar numa célula, um padrão qualquer caracter de texto…
=REGEXTEST(B5;".";0)
Identificar numa célula, um padrão específico com a letra “E” também sensível a maiúsculas e minúsculas…
=REGEXTEST(B5;"E";0)
Identificar numa célula, um padrão específico uma ou mais ocorrências da letra “S” sensível a maiúsculas ou minúsculas
=REGEXTEST(B5;"S+";0)
Função REGEXEXTRACT
A função REGEXEXTRACT permite extrair texto de uma cadeia com base numa expressão regular fornecida. Pode extrair a primeira correspondência, todas as correspondências ou a captura de grupos da primeira correspondência.
A sintaxe da função é:
=REGEXEXTRACT(texto; padrão; [modo_de_retorno]; [sensível_a_maiúsculas_e_minusculas])
- Texto: O texto ou a referência a uma célula que contém o texto com o qual pretende corresponder.
- Padrão: A expressão regular ("regex") que descreve o padrão de texto que pretende corresponder.
- Modo_de_retorno: indicamos através de um número, a cadeia que pretendemos extrair. A predefinição é 0.
- 0 – Devolve a primeira cadeia que corresponde ao padrão.
- 1 – Devolve todas as cadeias que correspondem ao padrão como uma matriz.
- 2 – Devolve grupos de captura da primeira correspondência como uma matriz. Neste caso os grupos de captura são partes de um padrão “regex” entre parênteses "(...)" que Permitem devolver partes separadas de uma única correspondência individualmente.
- Sensível a…: Determina se a correspondência é sensível a maiúsculas e minúsculas. Por predefinição, a correspondência é sensível às maiúsculas e minúsculas. Neste argumento podemos colocar uma das opções:
- 0: Sensível a maiúsculas
- 1: Não sensível a maiúsculas
Exemplos para a Função REGEXEXTRACT
Extrair todos os caracteres numéricos numa string de texto…
No exemplo podemos complementar a expressão com a função UNIRTEXTO que junta todas as ocorrências numa única.
Agora o mesmo exemplo com um padrão ‘regex’ diferente…
Extrair todos os caracteres de texto, sensível a maiúsculas e minúsculas…
Neste exemplo podemos verificar como é simples separar dígitos com não dígitos num pedaço de texto.
Extrair um caracter específico “X” no texto…
Extrair um conjunto de texto dentro de parêntesis
Extrair o e-mail num conjunto de texto
Função REGEXREPLACE
A função REGEXREPLACE permite substituir texto de uma cadeia por outra cadeia, com base numa expressão regular fornecida ‘regex’.
A sintaxe da função é:
= REGEXREPLACE (texto; padrão; substituição; [ocorrência]; [sensível_a_maiúsculas_e_minusculas])
- Texto: O texto ou a referência a uma célula que contém o texto com o qual pretende corresponder.
- Padrão: A expressão regular ("regex") que descreve o padrão de texto que pretende corresponder.
- Substituição: O texto que pretendemos substituir.
- Ocorrência: Qual a instância ou ocorrência do padrão a substituir, na qual podemos colocar um valor omisso ou 0, que substitui todas as ocorrências. Podemos também aplicar um valor negativo, que inicia a partir do fim da cadeia de texto.
- Sensível a…: Determina se a correspondência é sensível a maiúsculas e minúsculas. Por predefinição, a correspondência é sensível às maiúsculas e minúsculas. Neste argumento podemos colocar uma das opções:
- 0: Sensível a maiúsculas
- 1: Não sensível a maiúsculas
Exemplo para a Função REGEXREPLACE
Extrair o e-mail num conjunto de texto
Estas funções podem ajudar portanto quando precisamos de retirar ou substituir partes de texto, que seriam mais complicadas de trabalhar com as funções tradicionais, ou mesmo através de ferramentas como o Power Query, uma vez que o conceito de “Regular Expression” que é usado em várias linguagens de programação determina um padrão comum de utilização em vários cenários.
Outros conteúdos relevantes:
Usar a Função nova LAMBDA para reutilizar cálculos e conjugações
Confira como a função LAMBRA, do Microsoft Excel, vai revolucionar a forma como realizamos operações, reutilizando cálculos ou conjugações de fórmulas.
Funções DROP e TAKE: Aprende a redimensionar Arrays no Excel!
Necessitas de dimensionar arrays? Neste vídeo vais aprender a usar 2 novas funções do Excel que permitem excluir ou incluir linhas e/ou colunas dos teus intervalos. Vamos lá?