Expressões regulares no Looker Studio

Uma expressão regular (regexp) é uma sequência específica de caracteres que corresponde, de modo amplo ou restrito, a padrões nos seus dados. Você pode usar expressões regulares para criar filtros mais flexíveis em gráficos e controles. Também é possível usar as seguintes funções de expressão regular em fórmulas de campo calculado:

FunçãoDescrição
REGEXP_CONTAINS Retorna "true" se o valor de entrada contém o padrão de expressão regular. Caso contrário, retorna "false".

Saiba mais sobre o REGEXP_CONTAINS.
REGEXP_EXTRACT Retorna a primeira substring no valor de entrada que corresponde ao padrão de expressão regular.

Saiba mais sobre o REGEXP_EXTRACT.
REGEXP_MATCH Retorna "true" se o valor de entrada corresponder ao padrão de expressão regular. Caso contrário, retorna "false".

Saiba mais sobre o REGEXP_MATCH.
REGEXP_REPLACE Substitui todas as ocorrências de texto que correspondem ao padrão de expressão regular no valor de entrada pela string replacement.

Saiba mais sobre o REGEXP_REPLACE.

Alternativas para o uso de expressões regulares

Criar expressões regulares pode ser complexo. Antes de usar uma função regexp, considere se uma função de texto mais simples atingirá sua meta. As funções a seguir oferecem recursos semelhantes a expressões regulares sem a necessidade de saber a sintaxe da expressão regular.

Função Descrição
CONTAINS_TEXT

Retorna "true" se o texto especificado for encontrado no campo ou na expressão. Caso contrário, retornará "false".

ENDS_WITH

Retorna "true" se o campo ou a expressão termina com o texto especificado. Caso contrário, retorna "false".

LEFT_TEXT

Retorna uma quantidade de caracteres do início de uma string especificada.

REPLACE Retorna uma cópia do texto original com todas as ocorrências do texto de pesquisa substituídas pelo texto de substituição.
RIGHT_TEXT

Retorna uma quantidade de caracteres do fim de uma string especificada.

STARTS_WITH

Retorna "true" se o campo ou a expressão começa com o texto especificado. Caso contrário, retorna "false".

TRIM

Retorna o texto com os espaços à esquerda e à direita removidos.

Exemplos de expressões regulares

Faz correspondência quando "MyField" contém caracteres de espaço:

REGEXP_CONTAINS(MyField, "\\s+")

Extrai o diretório de nível superior de um URL:

REGEXP_EXTRACT(URL, ^https://[^/]+/([^/]+)/)

Por exemplo, se o campo URL contivesse o endereço desta página, a função anterior retornaria looker-studio.

Classificar as campanhas publicitárias por idioma:

CASE
    WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*en\s*\|.*") then "English"
    WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*es\s*\|.*") then "Spanish"
    ELSE "Other language"
END

Por exemplo, aplicar essa expressão regular à dimensão Campanha na conta de demonstração do Google Analytics fornece estes resultados:

Campanha Idioma
Campanha nº 1 Outro idioma
1000549 | Google Analytics Demo | DR | apontes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) Inglês
1000549 | Google Analytics Demo | DR | apontes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) Espanhol

Trocar a ordem das seções em uma string:

REGEXP_REPLACE(Campaign, R'(.*):(.*)', R'\2 \1')

No exemplo anterior, as seções são separadas por dois pontos (:).

Metacaracteres

Os metacaracteres são caracteres que têm um significado especial em uma expressão regular. Confira a seguir alguns dos metacaracteres mais comuns que podem ser usados. Os exemplos podem ser vistos na Central de Ajuda do Google Analytics, mas as informações apresentadas lá valem igualmente para o Looker Studio.

Caracteres curinga

Baseado em caracteresDescriçãoExemplo
. Corresponde a qualquer caractere único (letra, número ou símbolo). 1. corresponde a 10, 1A

1.1 corresponde a 111, 1A1

Exemplos
? Corresponde ao caractere anterior nenhuma ou uma vez. 10? corresponde a 1, 10

Exemplos
+ Corresponde ao caractere anterior uma ou mais vezes. 10+ corresponde a 10, 100

Exemplos
* Corresponde ao caractere anterior nenhuma ou mais vezes. 1* corresponde a 1, 10

Exemplos
| Cria uma correspondência OR.

Não use no fim de uma expressão.
1|10 corresponde a 1, 10

Exemplos

Âncoras

Baseado em caracteresDescriçãoExemplo
^ Corresponde aos caracteres adjacentes no começo de uma string. ^10 corresponde a 10 , 10 0, 10 x

^10 não corresponde a 1 10 , 1 10 x

Exemplos
$ Corresponde aos caracteres adjacentes no fim de uma string. 10$ corresponde a 1 10 , 10 10

10$ não corresponde a 10 0, 10 x

Exemplos

Grupos

Baseado em caracteresDescriçãoExemplo
( ) Corresponde aos caracteres entre colchetes na ordem exata em que aparecem na string.

Também usado para agrupar outras expressões.
(10) corresponde a 10 , 10 1, 10 11

([0-9]|[a-z]) corresponde a qualquer número ou letra minúscula

Exemplos
[ ] Corresponde aos caracteres entre colchetes em qualquer ordem em que aparecem na string. [10] corresponde a 01 2, 1 20, 2 10

Exemplos
- Cria uma sequência de caracteres entre colchetes que correspondem a qualquer ocorrência deles na string. [0-9] corresponde a qualquer número de 0 a 9

Exemplos

Escape

Baseado em caracteresDescriçãoExemplo
\\

Indica que o caractere adjacente deve ser interpretado literalmente, e não como um metacaractere da regex.

\\ indica que o ponto final adjacente deve ser interpretado como um decimal ou ponto final, não como um caractere curinga

216\\.239\\.32\\.34 corresponde a 216.239.32.34

Exemplos

Classes de caracteres

TurmaCaracteres
\d dígitos (≡ [0-9])
\D não dígitos (≡ [^0-9])
\s espaço em branco (≡ [\t\n\f\r ])
\S não é espaço em branco (≡ [^\t\n\f\r ])
\w caracteres de palavras (≡ [0-9A-Za-z_])
\W não são caracteres de palavras (≡ [^0-9A-Za-z_])

Dicas

Use expressões simples

Simplifique suas expressões regulares. Expressões simples são mais fáceis para outro usuário interpretar e modificar.

Diferenciação entre maiúsculas e minúsculas

Por padrão, as expressões regulares diferenciam maiúsculas de minúsculas. Para que a correspondência não diferencie maiúsculas de minúsculas, use a flag (?i). Por exemplo, esta expressão extrai "abc123" e "ABC123":

REGEXP_EXTRACT(MyField, '(?i)(a.*)')

Escape de um caractere de barra invertida

Se você quiser escrever uma condição de filtro que inclua uma barra invertida, faça o escape dela com outra barra invertida.

Por exemplo, a expressão a seguir verifica se um campo contém a string green\yellow:

REGEXP_CONTAINS(field_name, "green\\yellow")

Também é possível adicionar um prefixo a uma expressão com o prefixo de literal de string bruta, R. Se você fizer isso, não será necessário escapar caracteres especiais, como a barra invertida. O exemplo anterior pode ser reescrito da seguinte forma:

REGEXP_CONTAINS(field_name, R"green\yellow")