Delen via


extract()

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Haal een overeenkomst op voor een reguliere expressie uit een brontekenreeks.

U kunt desgewenst de geëxtraheerde subtekenreeks converteren naar het aangegeven type.

Syntaxis

extract( regex,captureGroup,source [,typeLiteral])

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
regex- string ✔️ Een reguliere expressie.
captureGroup int ✔️ De opnamegroep die moet worden geëxtraheerd. 0 staat voor de hele overeenkomst, 1 voor de waarde die overeenkomt met de eerste '('haakje')' in de reguliere expressie en 2 of meer voor volgende haakjes.
bron string ✔️ De tekenreeks die moet worden gezocht.
typeLiteral string Indien opgegeven, wordt de geëxtraheerde subtekenreeks geconverteerd naar dit type. Bijvoorbeeld typeof(long).

Retourneert

Als regex een overeenkomst vindt in bronbron: de subtekenreeks die overeenkomt met de aangegeven capturegroep captureGroup, eventueel geconverteerd naar typeLiteral.

Als er geen overeenkomst is of als de typeconversie mislukt: null.

Voorbeelden

Maand extraheren uit datum/tijd-tekenreeks

De volgende query extraheert de maand uit de tekenreeks Dates en retourneert een tabel met de datumtekenreeks en de maand.

let Dates = datatable(DateString: string)
[
    "15-12-2024",
    "21-07-2023",
    "10-03-2022"
];
Dates
| extend Month = extract(@"-(\d{2})-", 1, DateString, typeof(int))
| project DateString, Month

uitvoer

DateString Maand
15-12-2024 12
21-07-2023 7
10-03-2022 3

Gebruikersnaam extraheren uit een tekenreeks

In het volgende voorbeeld wordt de gebruikersnaam uit de tekenreeks geretourneerd. De reguliere expressie ([^,]+) komt overeen met de tekst 'Gebruiker: ' tot aan de volgende komma, waardoor de gebruikersnaam effectief wordt geëxtraheerd.

let Text = "User: JohnDoe, Email: johndoe@example.com, Age: 29";
print UserName = extract("User: ([^,]+)", 1, Text)

uitvoer

Gebruikersnaam
JohnDoe