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