extract_all()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Ottenere tutte le corrispondenze per un'espressione regolare da una stringa di origine. Facoltativamente, recuperare un subset di gruppi corrispondenti.
print extract_all(@"(\d+)", "a set of numbers: 123, 567 and 789") // results with the dynamic array ["123", "567", "789"]
Alias deprecati: extractall()
Sintassi
extract_all(
regex,
[captureGroups,
] source)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
regex | string |
✔️ | Espressione regolare contenente tra uno e 16 gruppi di acquisizione. |
captureGroups | dynamic |
Matrice che indica i gruppi di acquisizione da estrarre. I valori validi sono compresi tra 1 e il numero di gruppi di acquisizione nell'espressione regolare. Sono consentiti anche gruppi di acquisizione denominati. Vedere esempi. | |
source | string |
✔️ | Stringa in cui effettuare la ricerca. |
Valori restituiti
- Se regex trova una corrispondenza nell'origine: restituisce una matrice dinamica che include tutte le corrispondenze rispetto ai gruppi di acquisizione indicati captureGroups o a tutti i gruppi di acquisizione nell'espressione regolare.
- Se il numero di captureGroups è 1: la matrice restituita ha una singola dimensione di valori corrispondenti.
- Se il numero di captureGroups è maggiore di 1: la matrice restituita è una raccolta bidimensionale di corrispondenze multivalore per ogni selezione captureGroups o tutti i gruppi di acquisizione presenti nell'espressione regolare se captureGroups viene omesso.
- Se non esiste alcuna corrispondenza:
null
.
Esempi
Estrarre un singolo gruppo di acquisizione
La query seguente restituisce la rappresentazione in byte esadecimale (due cifre esadecimale) del GUID.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"([\da-f]{2})", Id)
Output
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | ["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"] |
Estrarre diversi gruppi di acquisizione
Nella query seguente viene usata un'espressione regolare con tre gruppi di acquisizione per suddividere ogni parte GUID in prima lettera, ultima lettera e qualsiasi cosa si trova al centro.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", Id)
Output
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]] |
Estrarre un subset di gruppi di acquisizione
La query seguente seleziona un subset di gruppi di acquisizione.
L'espressione regolare corrisponde alla prima lettera, all'ultima lettera e a tutte le altre.
Il parametro captureGroups viene usato per selezionare solo la prima e l'ultima parte.
print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", dynamic([1,3]), Id)
Output
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]] |
Uso di gruppi di acquisizione denominati
Gli captureGroups nella query seguente usano sia gli indici del gruppo di acquisizione che i riferimenti ai gruppi di acquisizione denominati per recuperare i valori corrispondenti.
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)
Output
ID | guid_bytes |
---|---|
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 | [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]] |