Todos os produtos
Search
Central de documentação

Simple Log Service:Funções de expressão regular

Última atualização: Jul 04, 2026

Utilize funções de expressão regular para extrair, corresponder, substituir e dividir strings em consultas SQL e SPL.

Funções de expressão regular

O SLS oferece suporte às seguintes funções de expressão regular, todas utilizando a sintaxe RE2.

Importante

Para usar strings em instruções analíticas, é obrigatório colocá-las entre aspas simples (''). Strings sem aspas ou entre aspas duplas ("") indicam nomes de campos ou colunas. Por exemplo,

'status'

indica a string status, enquanto

status

ou

"status"

indica o campo de log status.

Função

Sintaxe

Descrição

SQL

SPL

Função regexp_extract_all

regexp_extract_all(x, regular expression)

Retorna um array com todas as substrings que correspondem a uma expressão regular.

√

×

regexp_extract_all(x, regular expression, n)

Retorna o grupo de captura especificado de todas as correspondências como um array.

√

×

Função regexp_extract

regexp_extract(x, regular expression)

Retorna a primeira substring que corresponde a uma expressão regular.

√

√

regexp_extract(x, regular expression, n)

Retorna o n-ésimo grupo de captura da primeira correspondência.

√

√

Função regexp_extract_bool

regexp_extract_bool(x, regular expression)

Converte a primeira correspondência para BOOLEAN. Retorna null se a conversão falhar.

√

×

regexp_extract_bool(x, regular expression, n)

Converte o grupo de captura especificado da primeira correspondência para BOOLEAN. Retorna null se a conversão falhar.

√

×

Função regexp_extract_long

regexp_extract_long(x, regular expression)

Converte a primeira correspondência para BIGINT. Retorna null se a conversão falhar.

√

×

regexp_extract_long(x, regular expression, n)

Converte o grupo de captura especificado da primeira correspondência para BIGINT. Retorna null se a conversão falhar.

√

×

Função regexp_extract_double

regexp_extract_double(x, regular expression)

Converte a primeira correspondência para DOUBLE. Retorna null se a conversão falhar.

√

×

regexp_extract_double(x, regular expression, n)

Converte o grupo de captura especificado da primeira correspondência para DOUBLE. Retorna null se a conversão falhar.

√

×

Função regexp_extract_map

regexp_extract_map(x, regular expression, keys)

Mapeia as chaves fornecidas para suas correspondências de grupos de captura respectivas.

√

×

regexp_extract_map(x, regular expression)

Mapeia o primeiro grupo de captura como chaves e o segundo como valores.

√

×

Função regexp_like

regexp_like(x, regular expression)

Verifica se uma string corresponde a uma expressão regular.

√

√

Função regexp_replace

regexp_replace(x, regular expression)

Remove todas as substrings que correspondem a uma expressão regular.

√

√

regexp_replace(x, regular expression, replace string)

Substitui todas as substrings que correspondem a uma expressão regular por uma string de substituição.

√

√

Função regexp_split

regexp_split(x, regular expression)

Divide uma string com base em uma expressão regular e retorna as substrings resultantes em um array.

√

×

Nota

Para extrair uma aspa simples (') com uma função de expressão regular, faça o escape duplicando-a para ''. O Exemplo 3 da função regexp_extract demonstra essa abordagem.

Função regexp_extract_all

Extrai todas as substrings que correspondem a uma expressão regular de uma string de origem.

Sintaxe

  • Retorna todas as substrings correspondentes como um array.

    regexp_extract_all(x, regular expression)
  • Retorna todas as correspondências de um grupo de captura especificado como um array.

    regexp_extract_all(x, regular expression, n)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Deve ser do tipo VARCHAR.

regular expression

A expressão regular. Deve conter grupos de captura quando o parâmetro n for especificado. Por exemplo, (\d)(\d)(\d) especifica três grupos de captura.

n

O índice do grupo de captura. Deve ser um número inteiro maior ou igual a 1.

Valor de retorno

ARRAY

Exemplos

  • Exemplo 1: Extrair todos os dígitos do campo server_protocol.

    • Campo de amostra

      server_protocol:HTTP/2.0
    • Instrução de consulta e análise (Testar)

      *| SELECT regexp_extract_all(server_protocol, '\d+')
    • Resultados da consulta e análise: A consulta retorna ["2","0"] na coluna _col0, que são todas as substrings numéricas extraídas de HTTP/2.0.

  • Exemplo 2: Extrair a substring 'Chrome' do campo http_user_agent e contar as requisições do Chrome.

    • Campo de amostra

      http_user_agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1
    • Instrução de consulta e análise (Testar)

      *| SELECT regexp_extract_all(http_user_agent, '(Chrome)',1) AS Chrome, count(*) AS count GROUP BY Chrome
    • Resultados da consulta e análise: A coluna Chrome retorna ["Chrome"] e a coluna count retorna 103440.

Função regexp_extract

Extrai a primeira substring que corresponde a uma expressão regular de uma string de origem.

Sintaxe

  • Retorna a primeira substring que corresponde a uma expressão regular.

    regexp_extract(x, regular expression)
  • Retorna a substring que corresponde ao n-ésimo grupo de captura.

    regexp_extract(x, regular expression, n)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Deve ser do tipo VARCHAR.

regular expression

A expressão regular. Pode conter grupos de captura. Por exemplo, (\d)(\d)(\d) contém três grupos de captura.

n

O índice do grupo de captura (baseado em 1). Deve ser um número inteiro positivo.

Valor de retorno

Retorna uma string VARCHAR.

Exemplos

SQL

  • Exemplo 1: Extrair o primeiro dígito do campo server_protocol.

    • Campo de amostra

      server_protocol:HTTP/2.0
    • Instrução de consulta (Testar)

      *|SELECT regexp_extract(server_protocol, '\d+')
    • A consulta retorna uma coluna chamada _col0 com o valor 2.

  • Exemplo 2: Extrair o nome do arquivo do campo request_uri e contar as requisições por arquivo.

    • Campo de amostra

      request_uri:/request/path-3/file-5
    • Instrução de consulta (Testar)

      * | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) AS file, count(*) AS count GROUP BY file
    • Resultado de amostra: A coluna file é file-5 e a coluna count é 17127.

  • Exemplo 3: Extrair a aspa simples (') e os dígitos do campo message.

    • Campo de amostra

      message:error'1232
    • Instrução de consulta

      * | SELECT regexp_extract(message, '''\d+') 
      Nota

      Para corresponder a uma aspa simples ('), você deve fazer o escape duplicando-a para '' na string da expressão regular.

    • O resultado é '1232.

SPL

  • Exemplo 1: Extrair o primeiro dígito do campo server_protocol.

    • Campo de amostra

server_protocol:HTTP/2.0
  • Instrução de consulta

* | extend a = regexp_extract(server_protocol, '\d+')
  • Resultado

a:  2
  • Exemplo 2: Extrair a parte do arquivo do campo request_uri.

    • Campo de amostra

request_uri:/request/path-3/file-5
  • Instrução de consulta

* | extend a = regexp_extract(request_uri, '.*\/(file.*)',1)
  • Resultado

O resultado é a: file-5.

  • Exemplo 3: Extrair a aspa simples (') e os dígitos do campo message.

    • Campo de amostra

message:error'1232
  • Instrução de consulta

* | extend a = regexp_extract(message, '''\d+') 

Nota

Para corresponder a uma aspa simples ('), você deve fazer o escape duplicando-a para '' na string da expressão regular.

  • Resultado

1  12-19 10:39:33
   a: '1232

Função regexp_extract_bool

Extrai a primeira substring correspondente e a converte para BOOLEAN ("true"/"false", sem distinção entre maiúsculas e minúsculas). Retorna null em caso de falha.

Sintaxe

  • Converte a primeira correspondência para BOOLEAN. Retorna null em caso de falha.

    regexp_extract_bool(x, regular expression)
  • Converte o grupo de captura especificado da primeira correspondência para BOOLEAN. Retorna null em caso de falha.

    regexp_extract_bool(x, regular expression, n)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Este parâmetro é do tipo VARCHAR.

regular expression

Uma expressão regular que contém grupos de captura. Por exemplo, (\d)(\d)(\d) especifica três grupos de captura.

n

O índice do grupo de captura a ser extraído. Este parâmetro é um número inteiro baseado em 1.

Tipo de valor de retorno

Tipo BOOLEAN.

Exemplos

  • Extrair um valor booleano de um campo.

    • Campo de amostra

      false 
    • Instrução de consulta e análise (Testar)

      *| select regexp_extract_bool('false', '[a-zA-Z]+')
    • Resultados da consulta e análise

      Retorna uma única coluna _col0 com uma linha de dados. O valor é false.

Função regexp_extract_long

Extrai uma substring que corresponde a uma expressão regular e a converte para BIGINT. Retorna null se a conversão falhar.

Sintaxe

  • Extrai a primeira correspondência e a converte para BIGINT.

    regexp_extract_long(x, regular expression)
  • Converte o grupo de captura especificado da primeira correspondência para BIGINT.

    regexp_extract_long(x, regular expression, n)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Este parâmetro é do tipo VARCHAR.

regular expression

Uma expressão regular que contém grupos de captura. Por exemplo, (\d)(\d)(\d) contém três grupos de captura.

n

O índice do grupo de captura a ser extraído. O índice é um número inteiro baseado em 1.

Tipo de valor de retorno

BIGINT

Exemplos

  • Extrair o número do campo time.

    • Campo de amostra

      time:19/Dec/2024:06:16:06
    • Instrução de consulta (Testar)

      *|SELECT regexp_extract_long(time, '(\d{2})/', 1) 
    • Resultados da consulta e análise

      Retorna uma coluna chamada _col0 que contém duas linhas, cada uma com o valor 19.

Função regexp_extract_double

Extrai uma substring que corresponde a uma expressão regular e a converte para DOUBLE. Retorna null se a conversão falhar.

Sintaxe

  • Converte a primeira correspondência para DOUBLE. Retorna null em caso de falha.

    regexp_extract_double(x, regular expression)
  • Converte o grupo de captura especificado da primeira correspondência para DOUBLE. Retorna null em caso de falha.

    regexp_extract_double(x, regular expression, n)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Seu tipo deve ser VARCHAR.

regular expression

Uma expressão regular que contém grupos de captura. Por exemplo, (\d)(\d)(\d) especifica três grupos de captura.

n

O índice do grupo de captura a ser extraído. O índice é um número inteiro que começa em 1.

Tipo de valor de retorno

double

Exemplos

  • Extrair o número de ponto flutuante do campo server_protocol.

    • Campo de amostra

      server_protocol:HTTP/1.1
    • Instrução de consulta e análise (Testar)

      *|SELECT regexp_extract_double(server_protocol, '\d+\.\d+') 
    • Resultados da consulta e análise

      Retorna uma coluna chamada _col0. Esta coluna contém duas linhas, cada uma com o valor 1.1.

Função regexp_extract_map

Extrai substrings que correspondem a grupos de captura em uma expressão regular e as retorna como um mapa de chave-valor.

Sintaxe

  • Cria um mapa pareando as chaves fornecidas com as substrings correspondidas pelos grupos de captura respectivos.

regexp_extract_map(x, regular expression, keys)
  • Cria um mapa usando uma expressão regular com dois grupos de captura que correspondem, respectivamente, às chaves e aos valores.

regexp_extract_map(x, regular expression)

Parâmetros

Parâmetro

Descrição

x

A string de origem a ser pesquisada. O tipo de dados é VARCHAR.

regular expression

Uma expressão regular que contém grupos de captura. Por exemplo, (\d)(\d)(\d) especifica três grupos de captura.

keys

Os nomes das chaves para as substrings capturadas. O tipo de dados é ARRAY(VARCHAR). O número de chaves deve corresponder ao número de grupos de captura na expressão regular.

Tipo de valor de retorno

MAP(VARCHAR, VARCHAR)

Exemplos

  • Exemplo 1: Extrair o nome do protocolo e a versão do campo server_protocol.

    • Campo de amostra

      server_protocol: 'HTTP/2.0'
    • Instrução de consulta

      select regexp_extract_map(server_protocol, '(\w+)/([\d\.]+)', array['name', 'version']) as protocol
    • Resultados da consulta e análise

      A consulta retorna o seguinte mapa na coluna protocol: {"name":"HTTP","version":"2.0"}.

  • Exemplo 2: Extrair todos os pares chave-valor do campo content.

    • Campo de amostra

      content: 'verb="GET" URI="/healthz" latency="45.911µs" userAgent="kube-probe/1.30+"'
    • Instrução de consulta

      select regexp_extract_map(content, '(\w+)="([^"]*)"') as args
    • Dados de saída

      {"latency":"45.911µs","verb":"GET","userAgent":"kube-probe/1.30+","URI":"/healthz"}

Função regexp_like

Verifica se uma string corresponde a uma expressão regular.

Sintaxe

regexp_like(x, regular expression)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Deve ser do tipo VARCHAR.

regular expression

O padrão de expressão regular a ser correspondido.

Tipo de valor de retorno

BOOLEAN

Exemplos

SQL

Verificar se o campo server_protocol contém dígitos.

  • Campo de amostra

    server_protocol:HTTP/2.0
  • Instrução de consulta e análise (Testar)

    *| select regexp_like(server_protocol, '\d+')
  • A consulta retorna duas linhas. Ambos os valores são true. Isso indica que o valor do campo server_protocol corresponde à expressão regular \d+ (contém dígitos).

SPL

Verificar se o campo server_protocol contém dígitos.

  • Campo de amostra

server_protocol:HTTP/2.0
  • Instrução de consulta e análise

* |extend a = regexp_like(server_protocol, '\d+')
  • Resultados da consulta e análise

1  12-18 19:34:20  1.2.3.4
        a: true

Função regexp_replace

Remove ou substitui substrings que correspondem a uma expressão regular.

Sintaxe

  • Remove todas as substrings de uma string de origem que correspondem a uma expressão regular.

    regexp_replace(x, regular expression)
  • Substitui todas as substrings que correspondem a uma expressão regular por uma string de substituição.

    regexp_replace(x, regular expression, replace string)

Parâmetros

Parâmetro

Descrição

x

A string de origem a ser pesquisada. Este parâmetro deve ser do tipo VARCHAR.

regular expression

O padrão de expressão regular.

replace string

A string de substituição. Se omitida, as substrings correspondidas serão removidas.

Tipo de valor de retorno

VARCHAR

Exemplos

SQL

  • Exemplo 1: No campo region, substitua os nomes de regiões que começam com cn por China e, em seguida, conte o número de requisições da China.

    • Campo de amostra

      region:cn-shanghai
    • Instrução de consulta e análise (Testar)

      * | select regexp_replace(region, 'cn.*','China') AS region, count(*) AS count GROUP BY region
    • Resultados da consulta e análise: A consulta retorna uma única linha onde a coluna region é China e a coluna count é 168871.

  • Exemplo 2: Remover o número da versão do campo server_protocol e contar as requisições por protocolo.

    • Campo de amostra

      server_protocol:HTTP/2.0
    • Instrução de consulta e análise (Testar)

      *| select regexp_replace(server_protocol, '.\d+') AS server_protocol, count(*) AS count GROUP BY server_protocol
    • Resultados da consulta e análise: A consulta retorna uma única linha onde server_protocol é HTTP e count é 168871.

SPL

  • Exemplo 1: Substituir todos os nomes de regiões no valor do campo region que começam com 'cn' por China.

    • Campo de amostra

region:cn-shanghai
  • Instrução de consulta e análise

* | extend a = regexp_replace(region, 'cn.*','China')
  • Resultados da consulta e análise

    1  12-18 19:34:20  1.2.3.4
       a: China
  • Exemplo 2: Excluir o número da versão do valor do campo server_protocol.

    • Campo de amostra

server_protocol:HTTP/2.0
  • Instrução de consulta e análise (Testar)

* | extend a = regexp_replace(server_protocol, '.\d+')
  • Resultados da consulta e análise

A consulta retorna uma entrada de log que inclui um carimbo de data/hora, o endereço IP de destino 1.2.3.4 e o campo server_protocol com o número da versão removido.

Função regexp_split

Divide uma string de origem em um array de substrings usando uma expressão regular como delimitador.

Sintaxe

regexp_split(x, regular expression)

Parâmetros

Parâmetro

Descrição

x

A string de origem. Seu tipo de dados é VARCHAR.

regular expression

O padrão de expressão regular usado como delimitador.

Tipo de valor de retorno

array

Exemplo

Use uma barra (/) para dividir o valor do campo request_uri.

  • Campo de amostra

    request_uri:/request/path-0/file-7
  • Instrução de consulta e análise (Testar)

    * | SELECT regexp_split(request_uri,'/')
  • Os resultados da consulta e análise são ["","request","path-0","file-7"].