Retorna um valor lógico que indica se o padrão especificado por uma expressão regular ocorre em uma cadeia.
Sintaxe
REGEXFIND(cadeia; padrão)
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
cadeia |
caractere |
O campo, expressão ou valor literal a ser testado por correspondência a um padrão. |
padrão |
caractere |
A cadeia padrão (expressão regular) a ser pesquisada. padrão pode conter caracteres literais, metacaracteres ou uma combinação dos dois. Os caracteres literais incluem todos os caracteres alfanuméricos, alguns caracteres de pontuação, e brancos. A pesquisa diferencia maiúsculas de minúsculas, o que significa que caracteres alfabéticos maiúsculos e minúsculos devem ser especificados explicitamente. |
Saída
Lógico. Retorna T (verdadeiro) se o padrão especificado for encontrado, caso contrário, retorna F (falso).
Exemplos
Exemplos básicos
Padrões de caracteres alfabéticos
Retorna T para todos os registros que contêm "Fortaleza", "Rio de Janeiro" ou "Belo Horizonte" no campo Cidade_Fornecedor. Caso contrário, retorna F:
REGEXFIND(Cidade_Fornecedor; “Rio de Janeiro|São Paulo|Belo Horizonte")
Retorna T para todos os sobrenomes que começam com "John" ou "Jon". Por exemplo: John, Jon, Johnson, Johnston, Jonson, Jonston, Jones e assim por diante. Caso contrário, retorna F:
REGEXFIND(Sobrenome;"^Joh?n")
Retorna T apenas para os sobrenomes que são "John" ou "Jon". Caso contrário, retorna F:
REGEXFIND(Sobrenome;"^Joh?n\b")
Padrões de caracteres numéricos
Retorna T para todos os registros com números de fatura que contêm "98". Caso contrário, retorna F:
REGEXFIND(Numero_Fatura; "98")
Retorna T para todos os registros com números de fatura que começam com "98". Caso contrário, retorna F:
REGEXFIND(Numero_Fatura; "\b98")
Retorna T para todos os registros com números de fatura que terminam com "98". Caso contrário, retorna F:
REGEXFIND(Numero_Fatura; "98\b")
Retorna T para todos os registros com números de fatura que contêm "98" na 5ª e na 6ª posições. Caso contrário, retorna F:
REGEXFIND(Numero_Fatura; "\b\d\d\d\d98")
REGEXFIND(Numero_Fatura; "\b\d{4}98")
Padrões de caracteres misturados
Retorna T para todos os registros com códigos de produto que iniciam com 3 números, seguidos por um hífen e 6 letras. Caso contrário, retorna F:
REGEXFIND(Codigo_Produto; "\b\d{3}-[a-zA-Z]{6}\b")
Retorna T para todos os registros com códigos de produto que iniciam com 3 ou mais números, seguidos por um hífen e 6 ou mais letras. Caso contrário, retorna F:
REGEXFIND(Codigo_Produto; "\b\d{3,}-[a-zA-Z]{6}")
Retorna T para todos os registros com identificadores de fatura alfanuméricos que contêm "98" na 5ª e na 6ª posições. Caso contrário, retorna F:
REGEXFIND(Numero_Fatura; "\b\w{4}98")
Retorna T para todos os registros com identificadores de fatura que contêm os seguintes, caso contrário, retorna F:
- qualquer caractere nas quatro primeiras posições
- "98" na 5ª e na 6ª posições
REGEXFIND(Numero_Fatura; "\b.{4}98")
Retorna T para todos os registros com identificadores de fatura que contêm "98", precedido de 1 a 4 caracteres iniciais. Caso contrário, retorna F:
REGEXFIND(Numero_Fatura; "\b.{1,4}98")
Retorna 'T' para todos os registros com identificadores de fatura que contêm todos os seguintes, caso contrário, retorna F:
- qualquer caractere nas três primeiras posições
- "5" ou "6" na 4ª posição
- "98" na 5ª e na 6ª posições
REGEXFIND(Numero_Fatura; "\b.{3}[56]98")
Retorna T para todos os registros com identificadores de fatura que contêm todos os seguintes, caso contrário, retorna F:
- qualquer caractere nas duas primeiras posições
- "55" ou "56" na 3ª e na 4ª posições
- "98" na 5ª e na 6ª posições
REGEXFIND(Numero_Fatura; "\b.{2}(55|56)98")
Observações
Como funciona?
A função REGEXFIND( ) usa uma expressão regular para pesquisar dados no Analytics.
As expressões regulares são cadeias de pesquisa poderosas e flexíveis que combinam caracteres literais e metacaracteres, que são caracteres especiais que executam uma grande variedade de operações de pesquisa.
Por exemplo:
REGEXFIND(Sobrenome;"Sm(i|y)the{0,1}")
usa os metacaracteres de grupo ( ), alternância | e quantificação { } para criar uma expressão regular que encontre "Smith", "Smyth", "Smithe" ou "Smythe" no campo Sobrenome.
Correspondência sequencial
A correspondência entre os valores cadeia e padrão é executada sequencialmente. No exemplo acima:
- "S" corresponde à primeira posição do campo Sobrenome
- "m" corresponde à segunda posição
- "i" e "y" correspondem à terceira posição
- "t" corresponde à quarta posição
- "h" corresponde à quinta posição
- "e" corresponde à sexta posição, se existente no valor de origem
Quando usar REGEXFIND( )
Use REGEXFIND( ) para pesquisar dados usando correspondência de padrões simples ou complexos.
A concatenação de expressões regulares pode ser capciosa, particularmente quando você está aprendendo a sintaxe. Você poderá resolver suas necessidades de pesquisa usando as funções de pesquisa mais simples do Analytics, como FIND( ), MATCH( ) ou MAP( ).
Se os seus requisitos de pesquisa excederem os recursos dessas funções mais simples, as expressões regulares oferecem flexibilidade quase ilimitada na construção das cadeias de pesquisa.
Como a REGEXFIND( ) processa espaços
Espaços (brancos) são tratados como caracteres em cadeia e em padrão, portanto, tome cuidado ao lidar com espaços.
Em padrão, é possível indicar um espaço literalmente, digitando um espaço ou usando o metacaractere \s. O uso do metacaractere facilita a leitura dos espaços no padrão e reduz a possibilidade de o espaço passar desapercebido, particularmente em padrões mais complexos.
Concatenação de campos
É possível concatenar dois ou mais campos em cadeia para pesquisar em vários campos ao mesmo tempo.
Por exemplo:
REGEXFIND(Nome_Fornecedor+Rua_Fornecedor;”Hardware.*Central")
pesquisa os campos Nome_Fornecedor e Rua_Fornecedor para encontrar palavras "Hardware" e "Central", separadas por zero ou mais caracteres.
Uma empresa que contenha a palavra "Hardware" em seu nome, localizada em uma rua denominada "Central", corresponde à expressão regular. Uma empresa denominada "Hardware na Central" também.
Os campos concatenados são tratados como um único campo que inclui os espaços à esquerda e à direita de cada campo, a menos que a função ALLTRIM( ) seja usada para remover espaços.
A ordem dos campos concatenados importa
Como REGEXFIND( ) pesquisa pelos caracteres em padrão na ordem em que são especificados, a ordem de concatenação dos campos influencia o resultado. Se você inverter Nome_Fornecedor e Rua_Fornecedor na expressão acima, seria mais difícil obter qualquer resultado.
Metacaracteres de expressões regulares
A tabela abaixo relaciona os metacaracteres que podem ser usados com REGEXFIND( ) e REGEXREPLACE( ) e descreve a operação executada por cada um deles.
As expressões regulares oferecem sintaxe adicional que conta com o suporte do Analytics, mas que é mais complexa. Uma explicação da sintaxe adicional completa está além do escopo deste guia. Há vários recursos disponíveis na Internet que explicam as expressões regulares.
O Analytics usa a implementação ECMAScript das expressões regulares. A maioria das implementações das expressões regulares usa uma sintaxe central comum.
Nota
A implementação atual das expressões regulares no Analytics não oferece suporte completo a pesquisas em idiomas diferentes do inglês.
Metacaractere |
Descrição |
---|---|
. |
Corresponde a qualquer caractere (exceto o caractere de quebra de linha) |
? |
Corresponde a 0 ou 1 ocorrência do literal, metacaractere ou elemento imediatamente anterior |
* |
Corresponde a 0 ou mais ocorrências do literal, metacaractere ou elemento imediatamente anterior |
+ |
Corresponde a 1 ou mais ocorrências do literal, metacaractere ou elemento imediatamente anterior |
{} |
Corresponde ao número especificado de ocorrências do literal, metacaractere ou elemento imediatamente anterior. Você pode especificar um número exato, um intervalo ou um intervalo aberto. Por exemplo:
|
[] |
Corresponde a qualquer caractere simples dentro dos colchetes Por exemplo:
|
() |
Cria um grupo que define uma sequência ou bloco de caracteres, que pode ser tratada como uma única unidade. Por exemplo:
|
\ |
Caractere de escape que especifica que o caractere a seguir é um literal. Utilize o caractere de escape para corresponder metacaracteres literalmente. Por exemplo, \( encontra um parêntesis esquerdo, e \\ encontra uma barra invertida. Utilize o caractere de escape se quiser corresponder literalmente qualquer um dos caracteres a seguir: ^ $ . * + ? = ! : | \ ( ) [ ] { } Outros caracteres de pontuação, como o e comercial (&) ou arroba (@), não exigem o caractere de escape. |
\int |
Especifica que um grupo, definido previamente com parênteses ( ), é repetido. int é um inteiro que identifica a posição sequencial do grupo previamente definido em relação a todos os outros grupos. Esse metacaractere pode ser usado no parâmetro padrão em REGEXFIND( ) e REGEXREPLACE( ). Por exemplo:
|
$int |
Especifica que um grupo encontrado em uma cadeia de destino é usado em uma cadeia de substituição. int é um inteiro que identifica a posição sequencial do grupo na cadeia de destino em relação a todos os outros grupos. Esse metacaractere pode ser usado apenas no parâmetro nova_cadeia em REGEXREPLACE( ). Por exemplo:
|
| |
Corresponde o caractere, o bloco de caracteres ou a expressão antes ou depois da barra vertical (|) Por exemplo:
|
\w |
Corresponde a qualquer caractere da palavra (a a z, A a Z, 0 a 9 e o caractere sublinhado _ ) |
\W |
Corresponde a qualquer caractere que não é da palavra (diferente de a a z, A a Z, 0 a 9 e do caractere sublinhado _ ) |
\d |
Corresponde a todos os números (qualquer dígito decimal) |
\D |
Corresponde a qualquer caractere que não seja um número (qualquer caractere que não seja um dígito decimal) |
\s |
Corresponde a um espaço (branco) |
\S |
Corresponde a qualquer caractere que não seja um espaço (um caractere não branco) |
\b |
Corresponde a um limite de palavra (entre os caracteres \w e \W) Os limites de palavra não consomem nenhum espaço. Por exemplo:
Dica Além de espaços, os limites de palavra podem resultar de vírgulas, pontos finais e outros caracteres que não são palavras. Por exemplo, a expressão a seguir é avaliada como True: REGEXFIND("jsmith@example.net"; "\bexample\b")
|
^ |
Corresponde ao início de uma cadeia Dentro de colchetes, [ ], ^ nega o conteúdo |
$ |
Corresponde ao fim de uma cadeia |
Funções relacionadas
Se você deseja encontrar e substituir padrões correspondentes, use Função REGEXREPLACE( ).