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ção | Descriçã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 usar 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 aí aplicam-se igualmente ao Data Studio.
Carateres universais
| Personagem | Descrição | Exemplo |
|---|---|---|
| . | Corresponde a qualquer caráter individual (letra, número ou símbolo). | 1. corresponde a 10, 1A 1.1 corresponde a 111, 1A1 |
| ? | 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 finaluma expressão. | 1|10 corresponde a 1, 10 Exemplos de criação de uma correspondência OR |
Âncoras
| Personagem | Descrição | Exemplo |
|---|---|---|
| ^ | 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
| Personagem | Descrição | Exemplo |
|---|---|---|
| ( ) | 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
| Personagem | Descrição | Exemplo |
|---|---|---|
| \\ | 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
| Classe | Carateres |
|---|---|
| \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 usando a flag (?i). Por exemplo, esta expressão extrai "abc123" e "ABC123":
REGEXP_EXTRACT(MyField, '(?i)(a.*)')
Usar o caráter de escape de 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 preceder 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")