RE2 söz dizimi

Bu makalede, RE2 kitaplığının söz dizimi olan Kusto Sorgu Dili (KQL) tarafından desteklenen normal ifade söz dizimine genel bir bakış sağlanır.

, ve gibi matches regexparsenormal ifadelerle dize eşleştirme, seçim ve ayıklama gerçekleştiren bir dizi KQL işleci ve replace_regex()işlevi vardır.

KQL'de normal ifadelerin dize değişmez değerleri olarak kodlanması ve dize alıntısı kurallarını izlemesi gerekir. Örneğin, RE2 normal ifadesi \A KQL'de olarak "\\A"temsil edilir. Ek ters eğik çizgi, diğer ters eğik çizginin normal ifadesinin \Abir parçası olduğunu gösterir.

Söz dizimine genel bakış

Aşağıdaki tabloda Kusto'da normal ifadeler yazmak için kullanılan RE2 normal ifade söz dizimine genel bakış sağlanır.

Söz dizimi öğesi Description
Tek değişmez değerler Meta karakterler (* + ? ) dışında tek karakterler kendi kendine eşleşir ( ) |), aşağıdaki satırlarda açıklandığı gibi benzersiz anlamlara sahiptir.
Meta Bir meta karakterle tam anlamıyla eşleştirmek için ters eğik çizgilerle kaçış karakteri koyun. Örneğin, normal ifade \+ değişmez değer artı (+) karakteriyle eşleşir.
Değişim İfadelerden biriyle eşleşen yeni bir ifade oluşturmak için iki ifadeyi ile | değiştirin. Örneğin, e1 | e2 veya e2ile eşleşire1.
Birleştirme İki ifadeyi birleştirerek ilk ifadeyle eşleşen yeni bir ifade oluşturun ve ardından ikinci ifadeyi ekleyin. Örneğin, e1e2 eşleşmeler e1 ve e2ardından .
Yineleme Meta karakterler ?, +ve * yineleme işleçleridir. Örneğin, e1? sıfır veya bir yinelenmeyle e1+e1eşleşir, bir veya daha fazla yinelenmeyle e1eşleşir ve e1* ile eşleşen e1sıfır veya daha fazla dize dizisiyle eşleşir.

Not

Normal ifade işleçleri şu sırada değerlendirilir: değişim (|), birleştirme (yan yana ifadeler) ve yineleme (?, +, *). Değerlendirme sırasını denetlemek için parantez kullanın.

Tek karakterli ifadeler

Örnek Description
. herhangi bir karakter, büyük olasılıkla yeni satır dahil (s=true)
[xyz] character sınıfı
[^xyz] olumsuz karakter sınıfı
\d Perl karakter sınıfı
\D ngated Perl karakter sınıfı
[[:alpha:]] ASCII karakter sınıfı
[[:^alpha:]] olumsuz ASCII karakter sınıfı
\pN Unicode karakter sınıfı (tek harfli ad)
\p{Greek} Unicode karakter sınıfı
\PN olumsuz unicode karakter sınıfı (tek harfli ad)
\P{Greek} olumsuz unicode karakter sınıfı

Bileşikler

Örnek Description
xy x ve ardından y
x\|y x veya y (tercih edin x)

Tekrarlamaların

Örnek Description
x* sıfır veya daha fazla x, daha fazlasını tercih edin
x+ bir veya daha fazla x, daha fazlasını tercih edin
x? sıfır veya bir x, tercih bir
x{n,m} n veya n+1 veya ... veya mx, daha fazlasını tercih edin
x{n,} n veya daha fazla x, daha fazlasını tercih edin
x{n} Tam nx
x*? sıfır veya daha fazla x, daha azı tercih edin
x+? bir veya daha fazla x, daha az tercih edin
x?? sıfır veya bir x, sıfırı tercih edin
x{n,m}? n veya n+1 veya ... veya mxdaha az tercih edin
x{n,}? n veya daha fazla x, daha azı tercih edin
x{n}? Tam nx
x{} (≡ x*) (DESTEKLENMEZ) VIM
x{-} (≡ x*?) (DESTEKLENMEZ) VIM
x{-n} (≡ x{n}?) (DESTEKLENMEZ) VIM
x= (≡ x?) (DESTEKLENMEZ) VIM

Uygulama kısıtlaması: Sayım formları x{n,m}, x{n,}ve x{n} 1000'in üzerinde en az veya en fazla yineleme sayısı oluşturan formları reddeder. Sınırsız yinelemeler bu kısıtlamaya tabi değildir.

İyelik tekrarları

Örnek Description
x*+ sıfır veya daha fazla x, sahiplik (DESTEKLENMİYOR)
x++ bir veya daha fazla x, sahiplik (DESTEKLENMİYOR)
x?+ sıfır veya bir x, sahiplik (DESTEKLENMİYOR)
x{n,m}+ n Veya... veya mx, iyelik (DESTEKLENMİYOR)
x{n,}+ n veya daha fazla x, iyelik (DESTEKLENMİYOR)
x{n}+ tam olarak nx, iyelik (DESTEKLENMİYOR)

Gruplandırma

Örnek Description
(re) numaralandırılmış yakalama grubu (alt eşleşme)
(?P<name>re) adlandırılmış & numaralı yakalama grubu (alt eşleşme)
(?<name>re) adlandırılmış & numaralı yakalama grubu (alt eşleşme) (DESTEKLENMİYOR)
(?'name're) adlandırılmış & numaralı yakalama grubu (alt eşleşme) (DESTEKLENMİYOR)
(?:re) kapsüllenmeyen grup
(?flags) geçerli grup içinde bayrak ayarlama; kapsülleme değil
(?flags:re) re sırasında bayrakları ayarlama; kapsülleme değil
(?#text) açıklama (DESTEKLENMEDİ)
(?\|x\|y\|z) dal numaralandırma sıfırlama (DESTEKLENMEDİ)
(?>re) sahiplik eşleşmesi re (DESTEKLENMİYOR)
re@> (DESTEKLENMİYOR) VIM'in re iyelik eşleştirmesi
%(re) kapsüllenmeyen grup (DESTEKLENMEDİ) VIM

Bayraklar

Örnek Description
i büyük/küçük harfe duyarlı değil (varsayılan yanlış)
m çok satırlı mod: ^ ve $ başlangıç/bitiş metnine ek olarak başlangıç/bitiş satırını eşleştir (varsayılan yanlış)
s let . match \n (varsayılan false)
U ungreedy: ve , x+ ve x*?x+?vb.'nin x* anlamını değiştirme (varsayılan yanlış)

Bayrak söz dizimi xyz (set) veya -xyz (clear) veya xy-z (xy, clear z) şeklindedir.

Bayrakları kullanmak için ve flags parametrelerini şu şekilde belirtmeniz kind gerekir: kind=regexflags=regexFlags.

Boş dizeler

Örnek Description
^ metin veya satırın başında (m=true)
$ metnin sonunda (değil\Z gibi\z) veya satırda (m=true)
\A metnin başında
\b ASCII sözcük sınırında (\w bir tarafta ve \W, \Aveya \z diğer tarafta)
\B ASCII sözcük sınırında değil
\g aranmakta olan alt metin başlangıcında (DESTEKLENMİYOR) PCRE
\G son eşleşmenin sonunda (DESTEKLENMEDİ) PERL
\Z metnin sonunda veya metnin sonundaki yeni satırdan önce (DESTEKLENMEDİ)
\z metnin sonunda
(?=re) metin eşleştirmeden re önce (DESTEKLENMEDİ)
(?!re) metin eşleşmeden re önce (DESTEKLENMEDİ)
(?<=re) metin eşleştirmeden re sonra (DESTEKLENMEDİ)
(?<!re) metin eşleşmedikten re sonra (DESTEKLENMEDİ)
re& metin eşleştirmeden re önce (DESTEKLENMEDİ) VIM
re@= metin eşleştirmeden re önce (DESTEKLENMEDİ) VIM
re@! metin eşleşmeden re önce (DESTEKLENMEDİ) VIM
re@<= metin eşleştirmeden re sonra (DESTEKLENMEDİ) VIM
re@<! metin eşleşmedikten re sonra (DESTEKLENMEDİ) VIM
\zs eşleşme başlangıcını ayarlar (= \K) (DESTEKLENMEDİ) VIM
\ze eşleşme sonunu ayarlar (DESTEKLENMEDİ) VIM
\%^ dosyanın başlangıcı (DESTEKLENMEDİ) VIM
\%$ dosya sonu (DESTEKLENMEDİ) VIM
\%V ekranda (DESTEKLENMEDİ) VIM
\%# imleç konumu (DESTEKLENMEDİ) VIM
\%'m işaret m konumu (DESTEKLENMEDİ) VIM
\%23l 23. satırda (DESTEKLENMEDİ) VIM
\%23c 23. sütunda (DESTEKLENMEDİ) VIM
\%23v 23. sanal sütunda (DESTEKLENMEDİ) VIM

Çıkış sıraları

Örnek Description
\a bell (≡ \007)
\f form akışı (≡ \014)
\t yatay sekme (≡ \011)
\n newline (≡ \012)
\r satır başı (≡ \015)
\v dikey sekme karakteri (≡ \013)
\* *herhangi bir noktalama karakteri için değişmez değer ,*
\123 sekizli karakter kodu (en fazla üç basamak)
\x7F onaltılık karakter kodu (tam olarak iki basamak)
\x{10FFFF} onaltılık karakter kodu
\C UTF-8 modunda bile tek bir baytla eşleştirme
\Q...\E ... noktalama işaretleri olsa ... bile değişmez metin
\1 geri başvuru (DESTEKLENMEDİ)
\b geri al (DESTEKLENMEDİ) (kullanın \010)
\cK denetim karakteri ^K (DESTEKLENMEDİ) (kullanma \001 vb.)
\e escape (DESTEKLENMEDİ) (kullan \033)
\g1 geri başvuru (DESTEKLENMEDİ)
\g{1} geri başvuru (DESTEKLENMEDİ)
\g{+1} geri başvuru (DESTEKLENMEDİ)
\g{-1} geri başvuru (DESTEKLENMEDİ)
\g{name} adlandırılmış geri başvuru (DESTEKLENMEDİ)
\g<name> alt yordam çağrısı (DESTEKLENMEDİ)
\g'name' alt yordam çağrısı (DESTEKLENMEDİ)
\k<name> adlandırılmış geri başvuru (DESTEKLENMEDİ)
\k'name' adlandırılmış geri başvuru (DESTEKLENMEDİ)
\lX küçük harf X (DESTEKLENMEDİ)
\ux büyük harf x (DESTEKLENMEDİ)
\L...\E küçük harfli metin ... (DESTEKLENMEDİ)
\K sıfırlama başlangıcı $0 (DESTEKLENMEDİ)
\N{name} adlı Unicode karakteri (DESTEKLENMEDİ)
\R satır sonu (DESTEKLENMEDİ)
\U...\E büyük harf metin ... (DESTEKLENMEDİ)
\X genişletilmiş Unicode dizisi (DESTEKLENMEDİ)
\%d123 ondalık karakter 123 (DESTEKLENMEDİ) VIM
\%xFF onaltılık karakter FF (DESTEKLENMEDİ) VIM
\%o123 sekizli karakter 123 (DESTEKLENMEDİ) VIM
\%u1234 Unicode karakter 0x1234 (DESTEKLENMEDİ) VIM
\%U12345678 Unicode karakter 0x12345678 (DESTEKLENMEDİ) VIM

Karakter sınıfı öğeleri

Örnek Description
x tek karakter
A-Z karakter aralığı (dahil)
\d Perl karakter sınıfı
[:foo:] ASCII karakter sınıfı foo
\p{Foo} Unicode karakter sınıfı Foo
\pF Unicode karakter sınıfı F (tek harfli ad)

Karakter sınıflarını karakter sınıfı öğeleri olarak adlandır

Örnek Description
[\d] rakamlar (≡ \d)
[^\d] basamak değil (≡ \D)
[\D] basamak değil (≡ \D)
[^\D] basamak değil (≡ \d)
[[:name:]] karakter sınıfı içinde adlandırılmış ASCII sınıfı (≡ [:name:])
[^[:name:]] olumsuz karakter sınıfı içinde adlandırılmış ASCII sınıfı (≡ [:^name:])
[\p{Name}] karakter sınıfı içindeki adlandırılmış Unicode özelliği (≡ \p{Name})
[^\p{Name}] olumsuz karakter sınıfı içindeki adlandırılmış Unicode özelliği (≡ \P{Name})

Perl karakter sınıfları

Yalnızca ASCII

Örnek Description
\d rakamlar (≡ [0-9])
\D basamak değil (≡ [^0-9])
\s boşluk (≡ [\t\n\f\r ])
\S boşluk değil (≡ [^\t\n\f\r ])
\w sözcük karakterleri (≡ [0-9A-Za-z_])
\W sözcük karakterleri değil (≡ [^0-9A-Za-z_])
\h yatay boşluk (DESTEKLENMEDİ)
\H yatay boşluk değil (DESTEKLENMEDİ)
\v dikey boşluk (DESTEKLENMEDİ)
\V dikey boşluk değil (DESTEKLENMEDİ)

ASCII karakter sınıfları

Örnek Description
[[:alnum:]] alfasayısal (≡ [0-9A-Za-z])
[[:alpha:]] alfabetik (≡ [A-Za-z])
[[:ascii:]] ASCII (≡ [\x00-\x7F])
[[:blank:]] blank (≡ [\t ])
[[:cntrl:]] control (≡ [\x00-\x1F\x7F])
[[:digit:]] rakamlar (≡ [0-9])
[[:graph:]] grafik (≡ [!-~][A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_{ |}~])
[[:lower:]] küçük harf (≡ [a-z])
[[:print:]] yazdırılabilir (≡ [ -~][ [:graph:]])
[[:punct:]] noktalama işareti (≡ [!-/:-@[-{-~])
[[:space:]] boşluk (≡ [\t\n\v\f\r ])
[[:upper:]] büyük harf (≡ [A-Z])
[[:word:]] sözcük karakterleri (≡ [0-9A-Za-z_])
[[:xdigit:]] onaltılık basamak (≡ [0-9A-Fa-f])

Unicode karakter sınıfı adları

Genel

Örnek Description
C other
Cc denetimi
Cf biçim
Cn atanmamış kod noktaları (DESTEKLENMEDİ)
Co özel kullanım
Cs Vekil
L Mektup
LC büyük/küçük harf (DESTEKLENMEDİ)
L& büyük/küçük harf (DESTEKLENMEDİ)
Ll küçük harf
Lm değiştirici harf
Lo diğer harf
Lt titlecase letter
Lu büyük harf
M işaretle
Mc aralık işareti
Me kapsayan işaret
Mn nonspacing işareti
N sayı
Nd ondalık sayı
Nl harf numarası
No diğer numara
P noktalama işareti
Pc bağlayıcı noktalama işaretleri
Pd tire noktalama işaretleri
Pe noktalama işaretlerini kapatma
Pf son noktalama işareti
Pi ilk noktalama işaretleri
Po diğer noktalama işaretleri
Ps açık noktalama işaretleri
S simgesi
Sc para birimi simgesi
Sk değiştirici simgesi
Sm matematik simgesi
So diğer simge
Z Ayırıcı
Zl çizgi ayırıcısı
Zp paragraf ayırıcısı
Zs boşluk ayırıcısı

Betikler

Betikler
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 karakter sınıfları

Örnek Description
\i tanımlayıcı karakteri (DESTEKLENMEDİ) VIM
\I \i basamaklar dışında (DESTEKLENMEDİ) VIM
\k anahtar sözcük karakteri (DESTEKLENMEDİ) VIM
\K \k basamaklar dışında (DESTEKLENMEDİ) VIM
\f dosya adı karakteri (DESTEKLENMEDİ) VIM
\F \f basamaklar dışında (DESTEKLENMEDİ) VIM
\p yazdırılabilir karakter (DESTEKLENMİYOR) VIM
\P \p basamaklar dışında (DESTEKLENMEDİ) VIM
\s boşluk karakteri (≡ [ \t]) (DESTEKLENMEDİ) VIM
\S boşluk olmayan karakter (≡ [^ \t]) (DESTEKLENMEDİ) VIM
\d rakamlar (≡ [0-9]) VIM
\D VIM değil \d
\x onaltılık basamaklar (≡ [0-9A-Fa-f]) (DESTEKLENMEDİ) VIM
\X not \x (NOT SUPPORTED) VIM
\o sekizli basamaklar (≡ [0-7]) (DESTEKLENMEDİ) VIM
\O not \o (NOT SUPPORTED) VIM
\w sözcük karakteri VIM
\W VIM değil \w
\h sözcük karakteri baş karakteri (DESTEKLENMEDİ) VIM
\H not \h (NOT SUPPORTED) VIM
\a alfabetik (DESTEKLENMEDİ) VIM
\A not \a (NOT SUPPORTED) VIM
\l küçük harf (DESTEKLENMEDİ) VIM
\L küçük harf değil (DESTEKLENMEDİ) VIM
\u büyük harf (DESTEKLENMEDİ) VIM
\U büyük harf değil (DESTEKLENMEDİ) VIM
\_x \x plus newline, for any x (NOT SUPPORTED) VIM
\c ignore case (NOT SUPPORTED) VIM
\C büyük/küçük harf eşleştirme (DESTEKLENMEDİ) VIM
\m magic (DESTEKLENMEDİ) VIM
\M nomagic (DESTEKLENMEDİ) VIM
\v verymagic (DESTEKLENMEDİ) VIM
\V verynomagic (DESTEKLENMEDİ) VIM
\Z Unicode birleştirme karakterlerindeki farkları yoksayma (DESTEKLENMEDİ) VIM

Sihirli

Örnek Description
(?{code}) rastgele Perl kodu (DESTEKLENMEDİ) PERL
(??{code}) ertelenen rastgele Perl kodu (DESTEKLENMEDİ) PERL
(?n) regexp yakalama grubuna n özyinelemeli çağrı (DESTEKLENMEDİ)
(?+n) göreli gruba +n özyinelemeli çağrı (DESTEKLENMEDİ)
(?-n) göreli gruba -n özyinelemeli çağrı (DESTEKLENMEDİ)
(?C) PCRE açıklama balonu (DESTEKLENMEZ) PCRE
(?R) tüm regexp'e özyinelemeli çağrı (≡ (?0)) (DESTEKLENMEDİ)
(?&name) adlandırılmış gruba özyinelemeli çağrı (DESTEKLENMEDİ)
(?P=name) adlandırılmış backreference (DESTEKLENMEDİ)
(?P>name) adlandırılmış gruba özyinelemeli çağrı (DESTEKLENMEDİ)
(?(cond)true\|false) koşullu dal (DESTEKLENMEDİ)
(?(cond)true) koşullu dal (DESTEKLENMEDİ)
(*ACCEPT) normal ifadeleri Prolog'a daha çok benzer hale getirin (DESTEKLENMEDİ)
(*COMMIT) (DESTEKLENMEDİ)
(*F) (DESTEKLENMEDİ)
(*FAIL) (DESTEKLENMEDİ)
(*MARK) (DESTEKLENMEDİ)
(*PRUNE) (DESTEKLENMEDİ)
(*SKIP) (DESTEKLENMEDİ)
(*THEN) (DESTEKLENMEDİ)
(*ANY) yeni satır kuralı ayarlama (DESTEKLENMEDİ)
(*ANYCRLF) (DESTEKLENMEDİ)
(*CR) (DESTEKLENMEDİ)
(*CRLF) (DESTEKLENMEDİ)
(*LF) (DESTEKLENMEDİ)
(*BSR_ANYCRLF) set \R convention (NOT SUPPORTED) PCRE
(*BSR_UNICODE) (DESTEKLENMEDİ) PCRE