Compartilhar via


extract_all()

Obter 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"]

Aliases preteridos: extractall()

Syntax

extract_all(Regex, [captureGroups,] Fonte)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
regex string ✔️ Uma expressão regular que contém entre um e 16 grupos de captura.
captureGroups dynamic Uma matriz que indica os grupos de captura a serem extraídos. Os valores válidos são de 1 para o 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.

Retornos

  • Se regex encontrar uma correspondência na origem: retorna uma matriz dinâmica, incluindo todas as correspondências em relação aos grupos de captura indicados captureGroups ou todos os grupos de captura no regex.
  • Se o número de captureGroups for 1: a matriz retornada terá uma única dimensão de valores correspondentes.
  • Se o número de captureGroups for maior que 1: a matriz retornada será uma coleção bidimensional de correspondências de vários valores por seleção 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 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 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

Os captureGroups na consulta a seguir usam índices de grupo de captura e referências de grupo de captura nomeados 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"]]