Uma expressão regular (regexp) é uma sequência específica de caracteres que corresponde, de modo amplo ou restrito, aos padrões dos 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 verdadeiro se o valor de entrada contém o padrão de expressão regular. Caso contrário, retorna falso. 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 verdadeiro se o valor de entrada corresponde ao padrão de expressão regular. Caso contrário, retorna falso. Saiba mais sobre o REGEXP_MATCH. |
REGEXP_REPLACE |
Substitui todas as ocorrências de texto correspondentes 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 regexp.
| Função | Descrição |
|---|---|
CONTAINS_TEXT |
Retorna "true" quando o texto especificado está presente no campo ou na expressão. Caso contrário, retorna "false". |
ENDS_WITH |
Retorna "true" quando 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" quando 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 dessa 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 Campaign 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. Veja a seguir alguns dos metacaracteres mais comuns que podem ser utilizados. Os exemplos podem ser vistos na Central de Ajuda do Google Analytics, mas as informações apresentadas lá valem igualmente para o Data 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 |
| ? | Corresponde ao caractere anterior nenhuma ou uma vez. | 10? corresponde a 1, 10 Exemplos de correspondência de um caractere 0 ou 1 vez |
| + | Corresponde ao caractere anterior uma ou mais vezes. | 10+ corresponde a 10, 100 Exemplos de correspondência de caracteres uma ou mais vezes |
| * | Corresponde ao caractere anterior nenhuma ou mais vezes. | 10* corresponde a 1, 10, 100 Exemplos de correspondência de um caractere nenhuma ou mais vezes |
| | | Cria uma correspondência OR. Não use no finaluma expressão. | 1|10 corresponde a 1, 10 Exemplos de criação de uma correspondência OR |
Â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 de correspondência de caracteres após o início de uma string |
| $ | 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 de correspondência de caracteres antes do fim de uma string |
Grupos
| Baseado em caracteres | Descrição | Exemplo |
|---|---|---|
| ( ) | Corresponde aos caracteres entre parênteses 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 de caracteres e expressões de agrupamento |
| [ ] | Corresponde a qualquer um dos caracteres entre colchetes. | part[12] corresponde a part1, part2 Exemplos de criação de um conjunto de caracteres para correspondência |
| - | 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 de correspondência de um intervalo de caracteres |
Escape
| Baseado em caracteres | Descrição | Exemplo |
|---|---|---|
| \\ | Indica que o caractere adjacente deve ser interpretado literalmente, e não como um metacaractere de expressão regular. | \\ 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 de caracteres de escape |
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 menos complexas 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.*)')
Como usar escape em um caractere de barra invertida
Se você quiser escrever uma condição de filtro que inclua uma barra invertida, será necessário usar uma segunda barra invertida para que a primeira seja interpretada como um caractere.
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 o prefixo de literal de string bruta, R, antes de uma expressão. Se você fizer isso, não será necessário usar caracteres de escape especiais, como a barra invertida. O exemplo anterior pode ser reescrito da seguinte maneira:
REGEXP_CONTAINS(field_name, R"green\yellow")