Retorna um valor lógico que indica se o padrão especificado por uma expressão regular ocorre em uma cadeia.

REGEXFIND(cadeia; padrão)
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.

Lógico. Retorna T (verdadeiro) se o padrão especificado for encontrado, caso contrário, retorna F (falso).

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

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:

  • a{3} corresponde a "aaa"

  • X{0,2}L corresponde a "L", "XL" e "XXL"

  • AB-\d{2,}-YZ corresponde a qualquer identificador alfanumérico com o prefixo "AB-", o sufixo "-YZ" e dois ou mais números no corpo do identificador

[]

Corresponde a qualquer caractere simples dentro dos colchetes

Por exemplo:

  • [aeiou] corresponde a a, ou e, ou i, ou o ou u

  • [^aeiou] corresponde a qualquer caractere que não seja a, ou e, ou i, ou o ou u

  • [A-G] corresponde a qualquer letra maiúscula de A a G

  • [A-Ga-g] corresponde a qualquer letra maiúscula de A a G, ou a qualquer letra minúscula de a a g

  • [5-9] corresponde a qualquer número de 5 a 9

()

Cria um grupo que define uma sequência ou bloco de caracteres, que pode ser tratada como uma única unidade.

Por exemplo:

  • S(ch)?mid?th? corresponde a "Smith" ou "Schmidt"

  • (56A.*){2} corresponde a qualquer identificador alfanumérico em que a sequência "56A" ocorre pelo menos duas vezes

  • (56A).*-.*\1 corresponde a qualquer identificador alfanumérico em que a sequência "56A" ocorre pelo menos duas vezes, com um hífen localizado entre duas das ocorrências

\

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:

  • (123).*\1 corresponde a qualquer identificador em que o grupo de dígitos "123" ocorre pelo menos duas vezes

  • ^(\d{3}).*\1 corresponde a qualquer identificador em que os primeiros três dígitos são repetidos

  • ^(\d{3}).*\1.*\1 corresponde a qualquer identificador em que os primeiros três dígitos são repetidos pelo menos duas vezes

  • ^(\D)(\d)-.*\2\1 corresponde a qualquer identificador em que o prefixo alfanumérico é repetido com os caracteres alfabéticos e numéricos invertidos

$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:

  • Se o padrão (\d{3})[ -]?(\d{3})[ -]?(\d{4}) for usado para corresponder diversos formatos de número de telefone diferentes, o parâmetro nova_cadeia($1)-$2-$3 poderá ser usado para substituir os números por si mesmos e padronizar a formatação. 999 123-4567 e 9991234567 mudam para (999)-123-4567.

|

Corresponde o caractere, o bloco de caracteres ou a expressão antes ou depois da barra vertical (|)

Por exemplo:

  • a|b corresponde a a ou b

  • abc|def corresponde a "abc" ou "def"

  • Sm(i|y)th corresponde a Smith ou Smyth

  • [a-c]|[Q-S]|[x-z] corresponde a qualquer uma das letras: a, b, c, Q, R, S, x, y e z

  • \s|- corresponde a um espaço ou um hífen

\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:

  • "United Equipment" contém 4 limites de palavra: um em cada lado do espaço, e um no início e no fim da cadeia. "United Equipment" corresponde à expressão regular \b\w*\b\W\b\w*\b

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( ).