Megosztás a következőn keresztül:


RE2-szintaxis

Ez a cikk áttekintést nyújt az Kusto lekérdezésnyelv (KQL) által támogatott reguláris kifejezésszintaxisról, amely a RE2 kódtár szintaxisa.

Számos KQL-operátor és függvény létezik, amelyek sztringegyeztetési, kijelölési és kinyerési műveleteket végeznek reguláris kifejezésekkel, például matches regex, parseés replace_regex().

A KQL-ben a reguláris kifejezéseket sztringkonstansként kell kódolni, és követni kell a sztring idézőszabályait. A RE2 reguláris kifejezés \A például a KQL-ben a következőként jelenik meg: "\\A". Az extra fordított perjel azt jelzi, hogy a másik fordított perjel a reguláris kifejezés \Arésze.

Szintaxis áttekintése

Az alábbi táblázat áttekinti a RE2 reguláris kifejezés szintaxisát, amely reguláris kifejezések írására szolgál a Kusto-ban.

Szintaxis elem Description
Egyetlen literál Egykarakter önmagával egyezik, kivéve a metakaraktereket (* + ? ( ) |), amelyek egyedi jelentéssel bírnak az alábbi sorokban leírtak szerint.
Metakarakterek Ha egy metakaraktert szó szerint szeretne egyeztetni, a fordított perjelekkel kell feloldani. A reguláris kifejezés \+ például egy literál plusz (+) karakterrel egyezik.
Váltakozás Váltsa ki a két kifejezést a paranccsal | egy olyan új kifejezés létrehozásához, amely megfelel bármelyik kifejezésnek. Például egyezés e1e2vagy e1 | e2 .
Összefűzés Két kifejezés összefűzésével hozzon létre egy új kifejezést, amely megfelel az első kifejezésnek, majd a másodiknak. Például a egyezéseket e1e2e1 , majd a következőt: e2.
Ismétlés A metacharacterek ?, +és * ismétlési operátorok. Például e1? a nullával vagy egy előfordulással e1+e1egyezik, a egy vagy több előfordulásával e1egyezik, és e1* egy vagy több, esetleg eltérő sztringet tartalmazó sorozatnak felel mege1.

Megjegyzés

A reguláriskifejezés-operátorok kiértékelése ebben a sorrendben történik: alternation (|), összefűzés (egymás melletti kifejezések) és ismétlés (?, +, *). Zárójelek használatával szabályozhatja a kiértékelési sorrendet.

Egykarakétes kifejezések

Példa Leírás
. bármely karakter, beleértve az új vonalat is (s=igaz)
[xyz] karakterosztály
[^xyz] negated karakterosztály
\d Perl karakterosztály
\D negated Perl karakterosztály
[[:alpha:]] ASCII-karakterosztály
[[:^alpha:]] negated ASCII karakterosztály
\pN Unicode-karakterosztály (egybetűs név)
\p{Greek} Unicode-karakterosztály
\PN negated Unicode karakterosztály (egybetűs név)
\P{Greek} negated Unicode karakterosztály

Kompozitok

Példa Leírás
xy x, majd y
x\|y x vagy y (előnyben részesítve x)

Ismétlés

Példa Leírás
x* nulla vagy több x, inkább több
x+ egy vagy több x, inkább több
x? nulla vagy egy x, előnyben részesít egy
x{n,m} n vagy n+1 vagy ... vagy mx, inkább több
x{n,} n vagy több x, inkább több
x{n} Pontosan nx
x*? nulla vagy több x, inkább kevesebb
x+? egy vagy több x, inkább kevesebb
x?? nulla vagy egy x, előnyben részesítve a nullát
x{n,m}? n vagy n+1 vagy ... vagy mx, inkább kevesebbet
x{n,}? n vagy több x, inkább kevesebb
x{n}? Pontosan nx
x{} (≡ x*) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
x{-} (≡ x*?) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
x{-n} (≡ x{n}?) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
x= (≡ x?) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP

Megvalósítási korlátozás: Az x{n,m}, x{n,} és x{n} számláló űrlapok elutasítják azokat az űrlapokat, amelyek 1000 feletti minimális vagy maximális ismétlésszámot hoznak létre. A korlátlan ismétlésekre nem vonatkozik ez a korlátozás.

Birtokos ismétlések

Példa Leírás
x*+ nulla vagy több x, birtokos (NEM TÁMOGATOTT)
x++ egy vagy több x, birtokos (NEM TÁMOGATOTT)
x?+ nulla vagy egy x, birtokos (NEM TÁMOGATOTT)
x{n,m}+ n Vagy... vagy mx, birtokos (NEM TÁMOGATOTT)
x{n,}+ n vagy több x, birtokos (NEM TÁMOGATOTT)
x{n}+ pontosan nx, birtokos (NEM TÁMOGATOTT)

Csoportosítás

Példa Leírás
(re) számozott rögzítési csoport (rész egyezés)
(?P<name>re) névvel ellátott & számozott rögzítési csoport (rész egyezés)
(?<name>re) névvel ellátott & számozott rögzítési csoport (részegyenlítés) (NEM TÁMOGATOTT)
(?'name're) névvel ellátott & számozott rögzítési csoport (részegyenlítés) (NEM TÁMOGATOTT)
(?:re) nem foglalható csoport
(?flags) jelölők beállítása az aktuális csoportban; nem foglalható
(?flags:re) jelölők beállítása az re során; nem foglalható
(?#text) megjegyzés (NEM TÁMOGATOTT)
(?\|x\|y\|z) ágszámozás alaphelyzetbe állítása (NEM TÁMOGATOTT)
(?>re) birtokos egyezése re (NEM TÁMOGATOTT)
re@> birtokos egyezése ( re NEM TÁMOGATOTT) VIM
%(re) nem foglalható csoport (NEM TÁMOGATOTT) VIRTUÁLIS GÉP

Zászlók

Példa Leírás
i kis- és nagybetűk megkülönböztetése (alapértelmezett hamis)
m többsoros mód: ^ és $ a kezdő/záró szöveg mellett egyezik a kezdő/záró szöveg (alapértelmezett hamis)
s legyen . egyezés \n (alapértelmezett hamis)
U ungreedy: swap jelentése x* és x*?, x+ és x+?, stb (alapértelmezett hamis)

A jelölő szintaxisa xyz (set) vagy -xyz (clear) vagy xy-z (xy, clear z).

A jelzők használatához meg kell adnia a és flags a kind paramétereket a következő módon: kind=regexflags=regexFlags.

Üres sztringek

Példa Leírás
^ szöveg vagy sor elején (m=igaz)
$ a szöveg végén (például \z nem\Z) vagy sorban (m=igaz)
\A a szöveg elején
\b az ASCII szóhatárnál (\w az egyik oldalon és \Wa , \A, vagy \z a másik oldalon)
\B nem AZ ASCII szóhatárnál
\g a keresett szöveg elején (NEM TÁMOGATOTT) PCRE
\G az utolsó mérkőzés végén (NEM TÁMOGATOTT) PERL
\Z a szöveg végén vagy a szöveg végén lévő új vonal előtt (NEM TÁMOGATOTT)
\z a szöveg végén
(?=re) szövegegyeztetés re előtt (NEM TÁMOGATOTT)
(?!re) nem egyező re szöveg előtt (NEM TÁMOGATOTT)
(?<=re) szövegegyeztetés re után (NEM TÁMOGATOTT)
(?<!re) nem egyező re szöveg után (NEM TÁMOGATOTT)
re& szövegegyeztetés re (NEM TÁMOGATOTT) virtuális gép előtt
re@= szövegegyeztetés re (NEM TÁMOGATOTT) virtuális gép előtt
re@! szöveg egyeztetése re előtt (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
re@<= szövegegyeztetés re után (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
re@<! nem egyező re szöveg után (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\zs beállítja az egyezés kezdetét (= \K) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\ze az egyezés végét állítja be (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%^ fájl kezdete (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%$ fájl vége (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%V képernyőn (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%# kurzorpozíció (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%'m pozíció megjelölése m (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%23l a 23. sorban (NEM TÁMOGATOTT) VIM
\%23c a 23. oszlopban (NEM TÁMOGATOTT) VIM
\%23v a 23. virtuális oszlopban (NEM TÁMOGATOTT) VIRTUÁLIS GÉP

Menekülési sorozatok

Példa Leírás
\a harang (≡ \007)
\f űrlapcsatorna (≡ \014)
\t vízszintes lap (≡ \011)
\n newline (≡ \012)
\r kocsivissza (≡ \015)
\v függőleges tabulátor karakter (≡ \013)
\* literál *, bármely írásjelhez *
\123 oktális karakterkód (legfeljebb három számjegy)
\x7F hexa karakterkód (pontosan két számjegy)
\x{10FFFF} hexa karakterkód
\C egyetlen bájt egyeztetése UTF-8 módban is
\Q...\E literális szöveg ... akkor is, ha ... írásjele van
\1 háttérrendszer (NEM TÁMOGATOTT)
\b backspace (NEM TÁMOGATOTT) (használja \010a )
\cK control char ^K (NOT SUPPORTED) (használat \001 stb.)
\e escape (NEM TÁMOGATOTT) (használja \033a )
\g1 háttérrendszer (NEM TÁMOGATOTT)
\g{1} háttérrendszer (NEM TÁMOGATOTT)
\g{+1} háttérrendszer (NEM TÁMOGATOTT)
\g{-1} háttérrendszer (NEM TÁMOGATOTT)
\g{name} elnevezett háttérrendszer (NEM TÁMOGATOTT)
\g<name> subroutine-hívás (NEM TÁMOGATOTT)
\g'name' subroutine-hívás (NEM TÁMOGATOTT)
\k<name> elnevezett háttérrendszer (NEM TÁMOGATOTT)
\k'name' elnevezett háttérrendszer (NEM TÁMOGATOTT)
\lX kisbetű X (NEM TÁMOGATOTT)
\ux nagybetű ( x NEM TÁMOGATOTT)
\L...\E kisbetűs szöveg ... (NEM TÁMOGATOTT)
\K visszaállítás kezdete $0 (NEM TÁMOGATOTT)
\N{name} unicode karakter elnevezve (NEM TÁMOGATOTT)
\R sortörés (NEM TÁMOGATOTT)
\U...\E nagybetűs szöveg ... (NEM TÁMOGATOTT)
\X bővített Unicode-sorozat (NEM TÁMOGATOTT)
\%d123 decimális karakter 123 (NEM TÁMOGATOTT) VIM
\%xFF hexa karakter FF (NEM TÁMOGATOTT) VIM
\%o123 oktális karakter 123 (NEM TÁMOGATOTT) VIM
\%u1234 Unicode-karakter 0x1234 (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\%U12345678 Unicode-karakter 0x12345678 (NEM TÁMOGATOTT) VIRTUÁLIS GÉP

Karakterosztály elemei

Példa Leírás
x egy karakter
A-Z karaktertartomány (beleértve)
\d Perl karakterosztály
[:foo:] ASCII-karakterosztály foo
\p{Foo} Unicode karakterosztály Foo
\pF Unicode karakterosztály F (egybetűs név)

Elnevezett karakterosztályok karakterosztály-elemként

Példa Leírás
[\d] számjegyek (≡ \d)
[^\d] nem számjegyek (≡ \D)
[\D] nem számjegyek (≡ \D)
[^\D] nem számjegyek (≡ \d)
[[:name:]] nevű ASCII-osztály karakterosztályon belül (≡ [:name:])
[^[:name:]] nevű ASCII-osztály a nemgated karakterosztályon belül (≡ [:^name:])
[\p{Name}] Unicode nevű tulajdonság karakterosztályon belül (≡ \p{Name})
[^\p{Name}] unicode nevű tulajdonság a nemgated karakterosztályon belül (≡ \P{Name})

Perl karakterosztályok

ASCII-only

Példa Leírás
\d számjegyek (≡ [0-9])
\D nem számjegyek (≡ [^0-9])
\s whitespace (≡ [\t\n\f\r ])
\S nem térköz (≡ [^\t\n\f\r ])
\w word characters (≡ [0-9A-Za-z_])
\W nem szókarakterek (≡ [^0-9A-Za-z_])
\h vízszintes térköz (NEM TÁMOGATOTT)
\H nem vízszintes térköz (NEM TÁMOGATOTT)
\v függőleges tér (NEM TÁMOGATOTT)
\V nem függőleges térköz (NEM TÁMOGATOTT)

ASCII-karakterosztályok

Példa Leírás
[[:alnum:]] alfanumerikus (≡ [0-9A-Za-z])
[[:alpha:]] betűrendes (≡ [A-Za-z])
[[:ascii:]] ASCII (≡ [\x00-\x7F])
[[:blank:]] üres (≡ [\t ])
[[:cntrl:]] control (≡ [\x00-\x1F\x7F])
[[:digit:]] számjegyek (≡ [0-9])
[[:graph:]] grafikus (≡ [!-~][A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_{ |}~])
[[:lower:]] kisbetű (≡ [a-z])
[[:print:]] nyomtatható (≡ [ -~][ [:graph:]])
[[:punct:]] írásjelek (≡ [!-/:-@[-{-~])
[[:space:]] whitespace (≡ [\t\n\v\f\r ])
[[:upper:]] nagybetű (≡ [A-Z])
[[:word:]] word characters (≡ [0-9A-Za-z_])
[[:xdigit:]] hexadecimális számjegy (≡ [0-9A-Fa-f])

Unicode-karakterosztályok nevei

Általános kérdések

Példa Leírás
C egyéb
Cc control
Cf Formátum
Cn nem hozzárendelt kódpontok (NEM TÁMOGATOTT)
Co privát használat
Cs Helyettesítő
L Levél
LC cased letter (NOT SUPPORTED)
L& cased letter (NOT SUPPORTED)
Ll kisbetű
Lm módosító betű
Lo egyéb betű
Lt titlecase letter
Lu nagybetű
M Mark
Mc térközjel
Me befoglaló jel
Mn nem jelölőjel
N szám
Nd decimális szám
Nl betűszám
No egyéb szám
P Írásjelek
Pc összekötő írásjele
Pd szaggatott írásjel
Pe írásjelek bezárása
Pf végső írásjel
Pi kezdeti írásjelek
Po egyéb írásjelek
Ps írásjelek megnyitása
S Szimbólum
Sc pénznemszimbólum
Sk módosító szimbólum
Sm matematikai szimbólum
So egyéb szimbólum
Z Elválasztó
Zl vonalelválasztó
Zp bekezdéselválasztó
Zs szóköz elválasztó

Parancsfájlok

Parancsfájlok
Adlam
Ahom
Anatolian_Hieroglyphs
Arabic
Armenian
Avestan
Balinese
Bamum
Bassa_Vah
Batak
Bengali
Bhaiksuki
Bopomofo
Brahmi
Braille
Buginese
Buhid
Canadian_Aboriginal
Carian
Caucasian_Albanian
Chakma
Cham
Cherokee
Chorasmian
Common
Coptic
Cuneiform
Cypriot
Cyrillic
Deseret
Devanagari
Dives_Akuru
Dogra
Duployan
Egyptian_Hieroglyphs
Elbasan
Elymaic
Ethiopic
Georgian
Glagolitic
Gothic
Grantha
Greek
Gujarati
Gunjala_Gondi
Gurmukhi
Han
Hangul
Hanifi_Rohingya
Hanunoo
Hatran
Hebrew
Hiragana
Imperial_Aramaic
Inherited
Inscriptional_Pahlavi
Inscriptional_Parthian
Javanese
Kaithi
Kannada
Katakana
Kayah_Li
Kharoshthi
Khitan_Small_Script
Khmer
Khojki
Khudawadi
Lao
Latin
Lepcha
Limbu
Linear_A
Linear_B
Lisu
Lycian
Lydian
Mahajani
Makasar
Malayalam
Mandaic
Manichaean
Marchen
Masaram_Gondi
Medefaidrin
Meetei_Mayek
Mende_Kikakui
Meroitic_Cursive
Meroitic_Hieroglyphs
Miao
Modi
Mongolian
Mro
Multani
Myanmar
Nabataean
Nandinagari
New_Tai_Lue
Newa
Nko
Nushu
Nyiakeng_Puachue_Hmong
Ogham
Ol_Chiki
Old_Hungarian
Old_Italic
Old_North_Arabian
Old_Permic
Old_Persian
Old_Sogdian
Old_South_Arabian
Old_Turkic
Odia
Osage
Osmanya
Pahawh_Hmong
Palmyrene
Pau_Cin_Hau
Phags_Pa
Phoenician
Psalter_Pahlavi
Rejang
Runic
Samaritan
Saurashtra
Sharada
Shavian
Siddham
SignWriting
Sinhala
Sogdian
Sora_Sompeng
Soyombo
Sundanese
Syloti_Nagri
Syriac
Tagalog
Tagbanwa
Tai_Le
Tai_Tham
Tai_Viet
Takri
Tamil
Tangut
Telugu
Thaana
Thai
Tibetan
Tifinagh
Tirhuta
Ugaritic
Vai
Wancho
Warang_Citi
Yezidi
Yi
Zanabazar_Square

Vim-karakterosztályok

Példa Leírás
\i azonosító karakter (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\I \i a számjegyek kivételével (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\k kulcsszó karakter (NEM TÁMOGATOTT) VIM
\K \k a számjegyek kivételével (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\f fájlnév karakter (NEM TÁMOGATOTT) VIM
\F \f a számjegyek kivételével (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\p nyomtatható karakter (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\P \p a számjegyek kivételével (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\s térköz karakter (≡ [ \t]) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\S nonwhite szóköz karakter (≡ [^ \t]) (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\d számjegyek (≡ [0-9]) VIM
\D nem \d VIM
\x hexadecimális számjegyek (≡ [0-9A-Fa-f]) (NEM TÁMOGATOTT) VIM
\X nem \x (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\o oktális számjegyek (≡ [0-7]) (NEM TÁMOGATOTT) VIM
\O nem \o (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\w word character VIM
\W nem \w VIM
\h szófejjel (NEM TÁMOGATOTT) VIM
\H nem \h (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\a betűrendes (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\A nem \a (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\l kisbetűs (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\L nem kisbetűs (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\u nagybetűs (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\U nem nagybetűs (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\_x \x plusz új vonal, bármely x (NEM TÁMOGATOTT) virtuális géphez
\c kis- és nagybetűk figyelmen kívül hagyása (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\C match case (NOT SUPPORTED) VIM
\m magic (NEM TÁMOGATOTT) VIM
\M nomagic (NEM TÁMOGATOTT) VIRTUÁLIS GÉP
\v nagyonmagikus (NEM TÁMOGATOTT) VIM
\V verynomagic (NOT SUPPORTED) VIM
\Z a Unicode-egyesítési karakterek különbségének figyelmen kívül hagyása (NEM TÁMOGATOTT) VIRTUÁLIS GÉP

Magic

Példa Leírás
(?{code}) tetszőleges Perl-kód (NEM TÁMOGATOTT) PERL
(??{code}) tetszőleges Perl-kód elhalasztása (NEM TÁMOGATOTT) PERL
(?n) rekurzív hívás regexp rögzítési csoporthoz n (NEM TÁMOGATOTT)
(?+n) rekurzív hívás relatív csoporthoz +n (NEM TÁMOGATOTT)
(?-n) rekurzív hívás relatív csoporthoz -n (NEM TÁMOGATOTT)
(?C) PCRE-ábrafelirat (NEM TÁMOGATOTT) PCRE
(?R) rekurzív hívás a teljes regexpre (≡ (?0)) (NEM TÁMOGATOTT)
(?&name) rekurzív hívás nevesített csoporthoz (NEM TÁMOGATOTT)
(?P=name) elnevezett háttérrendszer (NEM TÁMOGATOTT)
(?P>name) rekurzív hívás nevesített csoporthoz (NEM TÁMOGATOTT)
(?(cond)true\|false) feltételes ág (NEM TÁMOGATOTT)
(?(cond)true) feltételes ág (NEM TÁMOGATOTT)
(*ACCEPT) a regexps prologhoz hasonlóvá tétele (NEM TÁMOGATOTT)
(*COMMIT) (NEM TÁMOGATOTT)
(*F) (NEM TÁMOGATOTT)
(*FAIL) (NEM TÁMOGATOTT)
(*MARK) (NEM TÁMOGATOTT)
(*PRUNE) (NEM TÁMOGATOTT)
(*SKIP) (NEM TÁMOGATOTT)
(*THEN) (NEM TÁMOGATOTT)
(*ANY) newline-konvenció beállítása (NEM TÁMOGATOTT)
(*ANYCRLF) (NEM TÁMOGATOTT)
(*CR) (NEM TÁMOGATOTT)
(*CRLF) (NEM TÁMOGATOTT)
(*LF) (NEM TÁMOGATOTT)
(*BSR_ANYCRLF) set \R convention (NOT SUPPORTED) PCRE
(*BSR_UNICODE) (NEM TÁMOGATOTT) PCRE