Dit artikel bevat een overzicht van de syntaxis van reguliere expressies die worden ondersteund door Kusto-querytaal (KQL). Dit is de syntaxis van de RE2-bibliotheek.
Er zijn een aantal KQL-operators en -functies waarmee tekenreeksen worden gevonden, geselecteerd en opgehaald met reguliere expressies, zoals matches regex, parseen replace_regex().
In KQL moeten reguliere expressies worden gecodeerd als letterlijke tekenreeksen en de regels voor het aanhalingsteken volgen. De reguliere RE2-expressie \A wordt bijvoorbeeld in KQL weergegeven als "\\A". De extra backslash geeft aan dat de andere backslash deel uitmaakt van de reguliere expressie \A.
Syntaxisoverzicht
De volgende tabel bevat een overzicht van de re2-syntaxis van reguliere expressies, die wordt gebruikt voor het schrijven van reguliere expressies in Kusto.
Syntaxiselement
Description
Enkele letterlijke waarden
Afzonderlijke tekens komen overeen met zichzelf, met uitzondering van metatekens (* + ? ( ) |), die een unieke betekenis hebben zoals beschreven in de volgende rijen.
Metatekens
Als u een metateken letterlijk wilt vinden, moet u deze met backslashes laten ontsnappen. De reguliere expressie \+ komt bijvoorbeeld overeen met een letterlijk plusteken (+).
Afwisseling
Vervang twee expressies door | om een nieuwe expressie te maken die overeenkomt met een van de expressies. Komt bijvoorbeeld e1 | e2 overeen met e1 of e2.
Samenvoeging
Voeg twee expressies samen om een nieuwe expressie te maken die overeenkomt met de eerste expressie, gevolgd door de tweede. Komt bijvoorbeeld overeen e1 met e1e2 gevolgd door e2.
Herhaling
Metatekens ?, +en * zijn herhalingsoperators. Komt bijvoorbeeld e1? overeen met nul of één exemplaar van e1, e1+ komt overeen met een of meer exemplaren van e1en e1* komt overeen met een reeks van nul of meer, mogelijk verschillende, tekenreeksen die overeenkomen met e1.
Notitie
Reguliere expressieoperators evalueren in deze volgorde: alternatie (|), samenvoeging (expressies naast elkaar) en herhaling (?, +, *). Gebruik haakjes om de evaluatievolgorde te bepalen.
Expressies met één teken
Voorbeeld
Beschrijving
.
elk teken, mogelijk inclusief nieuwe regel (s=true)
ontkende Unicode-tekenklasse (naam van één letter)
\P{Greek}
negated Unicode character class
Composiet
Voorbeeld
Beschrijving
xy
x gevolgd door y
x\|y
x of y (liever x)
Herhalingen
Voorbeeld
Beschrijving
x*
nul of meer x, liever meer
x+
een of meer x, liever meer
x?
nul of één x, liever één
x{n,m}
n of n+1 of ... of mx, liever meer
x{n,}
n of meer x, liever meer
x{n}
Precies nx
x*?
nul of meer x, liever minder
x+?
een of meer x, liever minder
x??
nul of één x, liever nul
x{n,m}?
n of n+1 of ... of mx, liever minder
x{n,}?
n of meer x, liever minder
x{n}?
Precies nx
x{}
(≡ x*) (NIET ONDERSTEUND) VIM
x{-}
(≡ x*?) (NIET ONDERSTEUND) VIM
x{-n}
(≡ x{n}?) (NIET ONDERSTEUND) VIM
x=
(≡ x?) (NIET ONDERSTEUND) VIM
Implementatiebeperking: de telformulieren x{n,m}, x{n,} en x{n} weigeren formulieren die een minimum- of maximumaantal herhalingen van meer dan 1000 maken. Onbeperkte herhalingen zijn niet onderhevig aan deze beperking.
Bezittelijke herhalingen
Voorbeeld
Beschrijving
x*+
nul of meer x, bezittelijk (NIET ONDERSTEUND)
x++
een of meer x, bezittelijk (NIET ONDERSTEUND)
x?+
nul of één x, bezittelijk (NIET ONDERSTEUND)
x{n,m}+
n Of... of mx, bezittelijk (NIET ONDERSTEUND)
x{n,}+
n of meer x, bezittelijk (NIET ONDERSTEUND)
x{n}+
precies nx, bezittelijk (NIET ONDERSTEUND)
Groeperen
Voorbeeld
Beschrijving
(re)
genummerde vastleggende groep (submatch)
(?P<name>re)
benoemd & genummerde vastleggende groep (submatch)
(?<name>re)
benoemd & genummerde vastleggende groep (submatch) (NIET ONDERSTEUND)
(?'name're)
benoemd & genummerde vastleggende groep (submatch) (NIET ONDERSTEUND)
(?:re)
niet-incapturerende groep
(?flags)
vlaggen instellen binnen de huidige groep; niet inkapseling
(?flags:re)
vlaggen instellen tijdens re; niet inkapseling
(?#text)
opmerking (NIET ONDERSTEUND)
(?\|x\|y\|z)
opnieuw instellen van vertakkingsnummering (NIET ONDERSTEUND)
(?>re)
bezitterige overeenkomst van re (NIET ONDERSTEUND)
re@>
bezittelijke overeenkomst van re (NIET ONDERSTEUND) VIM
%(re)
niet-incapturerende groep (NIET ONDERSTEUND) VIM
Vlaggen
Voorbeeld
Beschrijving
i
niet hoofdlettergevoelig (standaard onwaar)
m
modus met meerdere regels: ^ en $ overeenkomen met begin-/eindregel naast begin-/eindtekst (standaard onwaar)
s
laten . overeenkomen \n (standaard onwaar)
U
ungreedy: betekenis wisselen van x* en x*?, x+ en x+?, etc (standaard onwaar)
De syntaxis van de vlag is xyz (set) of -xyz (clear) of xy-z (set xy, clear z).
Als u vlaggen wilt gebruiken, moet u de kind parameters en flags als volgt opgeven: kind=regexflags=regexFlags.
Lege tekenreeksen
Voorbeeld
Beschrijving
^
aan het begin van tekst of regel (m=waar)
$
aan het einde van tekst (zoals \z niet\Z) of regel (m=waar)
\A
aan het begin van de tekst
\b
bij ASCII-woordgrens (\w aan de ene kant en \W, \Aof \z aan de andere kant)
\B
niet bij ASCII-woordgrens
\g
aan het begin van de subtekst die wordt doorzocht (NIET ONDERSTEUND) PCRE
\G
aan het einde van de laatste wedstrijd (NIET ONDERSTEUND) PERL
\Z
aan het einde van tekst of vóór nieuwe regel aan het einde van tekst (NIET ONDERSTEUND)
\z
aan het einde van de tekst
(?=re)
vóór overeenkomende re tekst (NIET ONDERSTEUND)
(?!re)
voor tekst die niet overeenkomt re (NIET ONDERSTEUND)
(?<=re)
na overeenkomende re tekst (NIET ONDERSTEUND)
(?<!re)
na tekst komt niet overeen re (NIET ONDERSTEUND)
re&
vóór tekst die overeenkomt re met (NIET ONDERSTEUND) VIM
re@=
vóór tekst die overeenkomt re met (NIET ONDERSTEUND) VIM
re@!
vóór tekst die niet overeenkomt re (NIET ONDERSTEUND) VIM
re@<=
na overeenkomende re tekst (NIET ONDERSTEUND) VIM
re@<!
na tekst komt niet overeen re (NIET ONDERSTEUND) VIM
\zs
stelt begin van overeenkomst (= \K) (NIET ONDERSTEUND) VIM in
\ze
stelt einde van overeenkomst in (NIET ONDERSTEUND) VIM
\%^
begin van bestand (NIET ONDERSTEUND) VIM
\%$
einde van bestand (NIET ONDERSTEUND) VIM
\%V
op het scherm (NIET ONDERSTEUND) VIM
\%#
cursorpositie (NIET ONDERSTEUND) VIM
\%'m
positie markeren m (NIET ONDERSTEUND) VIM
\%23l
in regel 23 (NIET ONDERSTEUND) VIM
\%23c
in kolom 23 (NIET ONDERSTEUND) VIM
\%23v
in virtuele kolom 23 (NIET ONDERSTEUND) VIM
Escape-reeksen
Voorbeeld
Beschrijving
\a
bel (≡ \007)
\f
formulierfeed (≡ \014)
\t
horizontaal tabblad (≡ \011)
\n
nieuwe regel (≡ \012)
\r
regelterugloop (≡ \015)
\v
verticaal tabteken (≡ \013)
\*
literal *, voor elk interpunctieteken *
\123
octale tekencode (maximaal drie cijfers)
\x7F
hextekencode (precies twee cijfers)
\x{10FFFF}
hextekencode
\C
komt overeen met een enkele byte, zelfs in de UTF-8-modus
\Q...\E
letterlijke tekst ... , zelfs als ... interpunctie is
\1
backreference (NIET ONDERSTEUND)
\b
backspace (NIET ONDERSTEUND) (gebruik \010)
\cK
control char ^K (NOT SUPPORTED) (use \001 etc)
\e
escape (NIET ONDERSTEUND) (gebruik \033)
\g1
backreference (NIET ONDERSTEUND)
\g{1}
backreference (NIET ONDERSTEUND)
\g{+1}
backreference (NIET ONDERSTEUND)
\g{-1}
backreference (NIET ONDERSTEUND)
\g{name}
named backreference (NIET ONDERSTEUND)
\g<name>
subroutine-aanroep (NIET ONDERSTEUND)
\g'name'
subroutine-aanroep (NIET ONDERSTEUND)
\k<name>
named backreference (NIET ONDERSTEUND)
\k'name'
named backreference (NIET ONDERSTEUND)
\lX
kleine letters X (NIET ONDERSTEUND)
\ux
hoofdletters x (NIET ONDERSTEUND)
\L...\E
kleine letters ... (NIET ONDERSTEUND)
\K
begin van $0 opnieuw instellen (NIET ONDERSTEUND)
\N{name}
benoemd Unicode-teken (NIET ONDERSTEUND)
\R
regeleinde (NIET ONDERSTEUND)
\U...\E
hoofdletters ( ... NIET ONDERSTEUND)
\X
uitgebreide Unicode-reeks (NIET ONDERSTEUND)
\%d123
decimaalteken 123 (NIET ONDERSTEUND) VIM
\%xFF
hexteken FF (NIET ONDERSTEUND) VIM
\%o123
octaal teken 123 (NIET ONDERSTEUND) VIM
\%u1234
Unicode-teken 0x1234 (NIET ONDERSTEUND) VIM
\%U12345678
Unicode-teken 0x12345678 (NIET ONDERSTEUND) VIM
Tekenklasse-elementen
Voorbeeld
Beschrijving
x
één teken
A-Z
tekenbereik (inclusief)
\d
Perl-tekenklasse
[:foo:]
ASCII-tekenklasse foo
\p{Foo}
Unicode-tekenklasse Foo
\pF
Unicode-tekenklasse F (naam van één letter)
Benoemde tekenklassen als tekenklasse-elementen
Voorbeeld
Beschrijving
[\d]
cijfers (≡ \d)
[^\d]
geen cijfers (≡ \D)
[\D]
geen cijfers (≡ \D)
[^\D]
not not digits (≡ \d)
[[:name:]]
benoemde ASCII-klasse binnen tekenklasse (≡ [:name:])
[^[:name:]]
benoemde ASCII-klasse binnen de klasse ontkend teken (≡ [:^name:])
[\p{Name}]
benoemde Unicode-eigenschap in tekenklasse (≡ \p{Name})
[^\p{Name}]
benoemde Unicode-eigenschap in de klasse negated character (≡ \P{Name})
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie: https://aka.ms/ContentUserFeedback.