extract()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Ottenere una corrispondenza per un'espressione regolare da una stringa di origine.
Facoltativamente, converte la sottostringa estratta nel tipo indicato.
Sintassi
extract(
regex,
captureGroup,
source [,
typeLiteral])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
regex | string |
✔️ | un'espressione regolare. |
captureGroup | int |
✔️ | Gruppo di acquisizione da estrarre. 0 indica l'intera corrispondenza, 1 per il valore corrispondente alla prima '('parentesi')' nell'espressione regolare e 2 o più per le parentesi successive. |
source | string |
✔️ | Stringa in cui effettuare la ricerca. |
typeLiteral | string |
Se specificato, la sottostringa estratta viene convertita nel tipo. Ad esempio: typeof(long) . |
Valori restituiti
Se regex trova una corrispondenza nell'origine: la sottostringa corrispondente rispetto al gruppo capture capturegroup indicato, facoltativamente convertita in typeLiteral.
Se non esiste alcuna corrispondenza o la conversione del tipo non riesce: null
.
Esempi
Nella stringa di esempio Trace
viene cercata una definizione per Duration
.
La corrispondenza viene convertita in real
e quindi moltiplicata per una costante di tempo (1s
) in modo che Duration
sia di tipo timespan
. In questo esempio è uguale a 123,45 secondi:
T
| extend Trace="A=1, B=2, Duration=123.45, ..."
| extend Duration = extract("Duration=([0-9.]+)", 1, Trace, typeof(real)) * time(1s)
Questo esempio è equivalente a substring(Text, 2, 4)
:
extract("^.{2,2}(.{4,4})", 1, Text)