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 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
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 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
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 |
€ | 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
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 |
[ ] | 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
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 |
Classes de personagens
Classe | Carateres |
---|---|
\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")