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ção | Descriçã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 caracteres | Descrição | Exemplo |
---|---|---|
. | 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 caracteres | Descrição | Exemplo |
---|---|---|
^ | 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 caracteres | Descrição | Exemplo |
---|---|---|
( ) | 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 caracteres | Descrição | Exemplo |
---|---|---|
\\ | 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
Turma | Caracteres |
---|---|
\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")