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 expressão regular, 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 de correspondência de um único caráter

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

Exemplos de correspondência de um caráter 0 ou 1 vezes
+ Corresponde ao caráter antecedente 1 ou mais vezes. 10+ corresponde a 10, 100

Exemplos de correspondência com o caráter 1 ou mais vezes
* Corresponde ao caráter antecedente 0 ou mais vezes. 10* corresponde a 1, 10, 100

Exemplos de correspondência de um caráter 0 ou mais vezes
| Cria uma correspondência OU.

Não usar no final

uma expressão.
1|10 corresponde a 1, 10

Exemplos de criação de uma correspondência OR

Â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 de correspondência de carateres após o início de uma string
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 de correspondência de carateres antes do fim de uma string

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 de agrupamento de carateres e expressões
[ ] Corresponde a qualquer um dos carateres entre parênteses retos. part[12] corresponde a part1, part2

Exemplos de criação de um conjunto de carateres para corresponder
- 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 de correspondência de um intervalo de carateres

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 de carateres de escape

Classes de personagens

ClasseCarateres
\d dígitos (≡ [0-9])
\D Não é um dígito (≡ [^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 barra invertida adicional para que o caráter de barra invertida seja interpretado de forma literal.

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")