Expressões regulares no Looker Studio

Uma expressão regular (regexp) é uma sequência específica de carateres que corresponde de forma ampla ou restrita a padrões nos seus dados. Pode usar expressões regulares para criar filtros mais flexíveis em gráficos e controlos. Também pode usar as seguintes funções de expressões regulares em fórmulas de campos calculados:

FunçãoDescrição
REGEXP_CONTAINS Devolve true se o valor de entrada contiver o padrão de expressão regular. Caso contrário, devolve false.

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

Saiba mais sobre o REGEXP_EXTRACT.
REGEXP_MATCH Devolve true se o valor de entrada corresponder ao padrão de expressão regular. Caso contrário, devolve 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 à utilização de expressões regulares

A criação de expressões regulares pode ser complexa. Antes de usar uma função de regexp, considere se a utilização de uma função de texto mais simples alcança o seu objetivo. As seguintes funções oferecem uma funcionalidade semelhante à das expressões regulares sem exigir que conheça a sintaxe das expressões regulares.

Função Descrição
CONTAINS_TEXT

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

ENDS_WITH

Devolve true se o campo ou a expressão terminar com o texto especificado. Caso contrário, devolve false.

LEFT_TEXT

Devolve um número de carateres do início de uma string especificada.

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

Devolve um número de carateres do fim de uma string especificada.

STARTS_WITH

Devolve true se o campo ou a expressão começar com o texto especificado. Caso contrário, devolve false.

TRIM

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

Exemplos de expressões regulares

Corresponde se MyField contiver carateres de espaço:

REGEXP_CONTAINS(MyField, "\\s+")

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

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

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

Categorize 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 esta expressão regular à dimensão Campanha na conta de demonstração do Google Analytics dá 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

Troque a ordem das secções numa string:

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

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

Metacarateres

Os metacarateres são carateres que têm um significado especial numa expressão regular. Seguem-se alguns dos metacaracteres mais comuns que pode usar. Tenha em atenção que estes exemplos são abertos no Centro de Ajuda do Google Analytics, mas as informações apresentadas aplicam-se igualmente ao Looker Studio.

Carateres universais

PersonagemDescriçãoExemplo
. Corresponde a qualquer caráter individual (letra, número ou símbolo). 1. corresponde a 10, 1A

1.1 corresponde a 111, 1A1

Exemplos
? Corresponde ao caráter antecedente 0 ou 1 vezes. 10? corresponde a 1 e 10

Exemplos
+ Corresponde ao caráter antecedente 1 ou mais vezes. 10+ corresponde a 10, 100

Exemplos
* Corresponde ao caráter antecedente 0 ou mais vezes. 1* corresponde a 1, 10

Exemplos
| Cria uma correspondência OU.

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

Exemplos

Âncoras

PersonagemDescriçãoExemplo
^ Corresponde aos carateres adjacentes no início de uma string. ^10 corresponde a 10 , 10 0, 10 x

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

Exemplos
Corresponde aos carateres adjacentes no final de uma string. 10$ corresponde a 1 10 , 10 10

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

Exemplos

Grupos

PersonagemDescriçãoExemplo
( ) Corresponde aos carateres entre parênteses na ordem exata e em qualquer posição de uma 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 carateres entre parênteses em qualquer ordem e em qualquer posição de uma string. [10] corresponde a 01 2, 1 20, 2 10

Exemplos
- Cria um intervalo de carateres entre parênteses retos que corresponde em qualquer posição de uma string. [0-9] corresponde a qualquer número de 0 a 9

Exemplos

Escape

PersonagemDescriçãoExemplo
\\

Indica que o caráter adjacente deve ser interpretado de forma literal e não como um metacaráter de expressão regular.

\\ indica que o ponto adjacente deve ser interpretado como um ponto ou como separador decimal e não como um caráter universal

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

Exemplos

Classes de personagens

ClasseCarateres
\d dígitos (≡ [0-9])
\D Não sã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 Carateres de palavras (≡ [0-9A-Za-z_])
\W Não carateres de palavras (≡ [^0-9A-Za-z_])

Dicas

Use expressões simples

Mantenha as suas expressões regulares simples. Deste modo, outros utilizadores vão ter mais facilidade em interpretar e modificá-las.

Sensibilidade a maiúsculas e minúsculas

As expressões regulares são sensíveis a maiúsculas e minúsculas por predefinição. Pode tornar a correspondência insensível a maiúsculas e minúsculas com a sinalização (?i). Por exemplo, esta expressão extrai "abc123" e "ABC123":

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

Usar o caráter de escape para uma barra invertida

Se quiser escrever uma condição de filtro que inclua um caráter de barra invertida, tem de usar um caráter de escape para o caráter de barra invertida com um segundo caráter de barra invertida.

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

REGEXP_CONTAINS(field_name, "green\\yellow")

Também pode adicionar um prefixo a uma expressão com o prefixo literal de string não processada, R. Se o fizer, não precisa de usar carateres de escape para carateres especiais, como o caráter de barra invertida. O exemplo anterior pode ser reescrito de forma equivalente da seguinte forma:

REGEXP_CONTAINS(field_name, R"green\yellow")