Expressão Regular no Looker Data Studio com exemplo prático
Aprenda o que é Expressão Regular e como funcionam as funções REGEXP_EXTRACT, REGEXP_MATCH e REGEXP_REPLACE do Looker Data Studio na prática
PUBLICADO POR AYLTON INACIO
Tutoriais e Artigos > Google Looker Studio
Uma Expressão Regular (REGEX) é usada no Looker Data Studio para identificar cadeias de caracteres específicos, palavras ou padrões através de regras dinâmicas e genéricas.
Por exemplo, é possível validar valores de um campo CEP de acordo com a regra 00000-000, ou seja, 5 números, hífen e mais 3 números, todos aleatórios. Você também pode extrair, substituir ou alterar a posição de palavras, tudo com base em padrões e não valores fixos.
▶ Se preferir, acesse "Expressão Regular no Looker Data Studio com exemplo prático" no YouTube.
Funções de Expressão Regular do Looker Data Studio:
- REGEXP_CONTAINS (Retorna verdadeiro se o valor de entrada contém o padrão de expressão regular. Caso contrário, retorna falso.)
Ex: REGEXP_CONTAINS(campo, '^A.*') retorna verdadeiro se o valor começar com A. - REGEXP_EXTRACT (Retorna a primeira substring no valor de entrada que corresponde ao padrão de expressão regular.)
Ex: REGEXP_EXTRACT(produto,'([0-9]+)') faz a extração dos primeiros números encontrados. - REGEXP_MATCH (Retorna verdadeiro se o valor de entrada corresponde ao padrão de expressão regular. Caso contrário, retorna falso.)
Ex: REGEXP_MATCH(país, "(EUA|Canadá|México)") retorna verdadeiro se um dos valores for encontrado. - REGEXP_REPLACE (Substitui todas as ocorrências de texto correspondentes ao padrão de expressão regular no valor de entrada pela string replacement.)
Ex: REGEXP_REPLACE(LOWER(Campanha), ".bc123", "Promoção") troca valores como abc123, ABC123 ou BBC123 por Promoção.
Exemplo prático
Nossa missão será extrair o código do produto, mas somente os números e colocar em um novo campo. Quando não tiver um código, o valor (not set) será colocado.
A outra parte será criar um novo campo com o nome do produto tratado, removendo o código completo com letras e números. Também vamos remover o hífen apenas quando grudado em duas palavras sem espaços, ex: Moletom-Silver.
Usando REGEXP_EXTRACT
Fórmula de Expressão Regular REGEX usada para extrair o código:
ifnull(REGEXP_EXTRACT(pagina, '[cod:|codigo|cod]([0-9]+)' ),'(not set)')
Analisando nossos produtos, temos o código de três formas, mas sempre começando com cod:, codigo ou cod. Então foram usados colchetes para criar um conjunto de caracteres para correspondência separados por pipe "|", que quer dizer "ou", um valor ou o outro. Ex: codigo5589x. Essa é a regra inicial.
Se o nome do produto tiver um dos formatos de códigos anteriores, será candidato. O nosso objetivo é extrair os números que estão na frente, ex: codigo5589x, então foram usados os Parênteses para criar o elemento de extração. Foi criado um conjunto com "0-9", ou seja, qualquer número pode aparecer, e depois o "+", dizendo que podemos ter vários números.
Por fim, se o nome do produto não entrar na regra o retorno será NULL, então tudo foi colocado dentro de IFNULL para verificar esse valor e em caso positivo trocar para (not set).
Metacaracteres para montar Expressão Regular
O Looker Studio usa a sintaxe de expressão RE2. Para mais detalhes, consulte Expressões regulares do Looker Studio. Os Metacaracteres mais comuns usandos com Expressão Regular são:
- [] criar um conjunto de caracteres para correspondência
- () agrupar partes de uma expressão, elemento para extração ou grupos para alterar posição
- + corresponde ao caractere anterior uma ou mais vezes
- ?i ativa o modo que não diferencia maiúsculas de minúsculas
- ^ Corresponde aos caracteres adjacentes no começo de uma string ou negação
- $ Corresponde aos caracteres adjacentes no fim de uma string
- . Corresponde a qualquer caractere único (letra, número ou símbolo)
- * Corresponde ao caractere anterior nenhuma ou mais vezes
- ? Corresponde ao caractere anterior nenhuma ou uma vez
- \\s espaço
Usando REGEXP_MATCH e REGEXP_REPLACE
Fórmula de Expressão Regular REGEX para criar o novo campo Página tratado:
CASE
WHEN REGEXP_MATCH(pagina, "(?i)home.*") THEN "Home"
else REGEXP_REPLACE(REGEXP_REPLACE(pagina, '-? (cod:|codigo|cod)[0-9a-z]*', ''), '(.*[^\\s])-(.*)', '\\1 \\2')
END
A primeira parte é verificar se no nome do produto tem a palavra home, e então trocar tudo para apenas Home com a primeira letra em caixa alta. Para isso foi usado REGEXP_MATCH para procurar o "home" com letra maiúscula ou minúscula "(?i)" e na frente podendo ter qualquer caracter 0 ou mais vezes ".*".
Se não encontrar "home", ela aplica a segunda regra do case. O REGEXP_REPLACE mais interno troca o código completo por nada ''. Ele procura o padrão começando ou não com hífen "-?" seguido de espaço, depois uma das palavras de código seguida de números ou letras nenhuma ou várias vezes "*".
Já a REGEXP_REPLACE externa recebe o valor da anterior, que é o nome do produto já sem o código e retira o hífen colado nas palavras, ex: Moletom-Silver.
O padrão procura por um grupo começando com qualquer caracter nenhuma ou mais vezes ".*" não seguido de espaço "^\\s" e depois um hífen, pois como temos valores de hífen entre espaços, ex: Vermelho - Masculino, esses precisam ser ignorados pela regra. Depois outro grupo com qualquer valor ou nada. Por fim ela coloca o retorno do primeiro grupo "\\1" seguido de espaço e o valor do segundo grupo "\\2", ficando algo como Moletom Silver.
Então é isso, eu espero que você tenha gostado desta publicação. Fique à vontade para compartilhar nas suas redes sociais para ajudar na divulgação e crescimento do site.
Aproveite para se inscrever no meu canal do YouTube e também na News do site pra ficar por dentro das novidades em artigos, tutoriais e cursos online.
Abraço e até a próxima!