extract_all()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Obtenha todas as correspondências para uma expressão regular de uma cadeia de caracteres de origem. Opcionalmente, recupere um subconjunto de grupos correspondentes.

print extract_all(@"(\d+)", "a set of numbers: 123, 567 and 789") // results with the dynamic array ["123", "567", "789"]

Apelidos obsoletos: extractall()

Sintaxe

extract_all(fonte regex [captureGroups,] ,)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
regex string ✔️ Uma expressão regular que contém entre um e 16 grupos de captura.
Grupos de captura dynamic Uma matriz que indica os grupos de captura a serem extraídos. Os valores válidos são de 1 elevado ao número de grupos de captura na expressão regular. Grupos de captura nomeados também são permitidos. Consulte os exemplos.
source string ✔️ A cadeia de caracteres a ser pesquisada.

Devoluções

  • Se regex encontrar uma correspondência na origem: Retorna a matriz dinâmica, incluindo todas as correspondências com os grupos de captura indicados captureGroups ou todos os grupos de captura no regex.
  • Se o número de captureGroups for 1: a matriz retornada tem uma única dimensão de valores correspondentes.
  • Se o número de captureGroups for maior que 1: a matriz retornada é uma coleção bidimensional de correspondências de vários valores por seleção de captureGroups ou todos os grupos de captura presentes no regex se captureGroups for omitido.
  • Se não houver correspondência: null.

Exemplos

Extrair um único grupo de captura

A consulta a seguir retorna a representação de byte hexadecimal (dois dígitos hexadecimais) do GUID.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"([\da-f]{2})", Id) 

Saída

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 ["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"]

Extrair vários grupos de captura

A consulta a seguir usa uma expressão regular com três grupos de captura para dividir cada parte do GUID em primeira letra, última letra e o que estiver no meio.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", Id)

Saída

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]

Extrair um subconjunto de grupos de captura

A consulta a seguir seleciona um subconjunto de grupos de captura.

A expressão regular corresponde à primeira letra, à última letra e a todo o resto.

O parâmetro captureGroups é usado para selecionar apenas a primeira e a última partes.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", dynamic([1,3]), Id) 

Saída

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]]

Usando grupos de captura nomeados

O captureGroups na consulta a seguir usa índices de grupo de captura e referências de grupo de captura nomeadas para buscar valores correspondentes.

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(?P<first>\w)(?P<middle>\w+)(?P<last>\w)", dynamic(['first',2,'last']), Id) 

Saída

ID guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]