extract_all()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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"]] |