UYARIKurallı ifadeler, güçlü bir dize eşleme aracıdır. Bu nedenle, Trend Micro, kurallı
ifadeleri kullanmayı seçen Yöneticilerin kurallı ifade söz dizimi hakkında bilgi sahibi
ve deneyimli olmasını önerir. Başarıyla yazılmayan kurallı ifadeler, dramatik bir
negatif etkiye sahip olabilir. Trend Micro, karmaşık söz dizimi kullanmayan basit
kurallı ifadelerle başlamayı önerir. Yeni kurallar oluştururken, arşivleme eylemini
kullanın ve Messaging Security Agent'ın kuralınızı kullanarak iletileri nasıl yönettiğini
gözlemleyin. Kuralın beklenmedik herhangi bir sonuca neden olmayacağından emin olduğunuzda,
eyleminizi değiştirebilirsiniz.
|
Öğe
|
Bunun Anlamı
|
Örnek
|
---|---|---|
.
|
Nokta karakteri yeni satır karakteri dışındaki herhangi bir karakteri temsil eder.
|
do.; doe, dog, don, dos, dot, vb. ile eşleşir.
d.r; deer, door, vb. ile eşleşir.
|
*
|
Yıldız karakteri, öğenin öncesinde sıfır veya daha fazla birim olduğu anlamına gelir.
|
do*; d, do, doo, dooo, doooo, vb. ile eşleşir.
|
+
|
Artı işareti karakteri, öğenin öncesinde bir veya daha fazla birim olduğu anlamına
gelir.
|
do+; do, do, doo, dooo, doooo, vb. ile eşleşir, d ile değil.
|
?
|
Soru işareti karakteri, öğenin öncesinde sıfır veya bir birim olduğu anlamına gelir.
|
do?g; dg veya dog eşleşir ancak doog, dooog, vb. ile değil.
|
( )
|
Parantez karakterleri grubu arasındakiler tek bir birim gibi dikkate alınır.
|
d(eer)+; deer veya deereer veya deereereer, vb. ile eşleşir. + işareti, parantez içindeki
alt dizeye uygulanır ve böylece regex, ardından bir veya daha fazla “eer.” grubu gelen
d'yi arar.
|
[ ]
|
Köşeli parantez karakterleri bir karakter dizisini veya aralığını gösterir.
|
d[aeiouy]+; da, de, di, do, du, dy, daa, dae, dai, vb. ile eşleşir. + işareti parantez
içindeki gruba uygulanır, böylece kurallı ifade d'den sonra gelen gruptaki bir veya
daha fazla karakter için arama yapar [aeioy].
d[A-Z]; dA, dB, dC... dZ'ye kadar eşleşir. Köşeli parantez içindeki grup A ve Z arasındaki
büyük harf aralığını gösterir.
|
[ ^ ]
|
Köşeli parantez içindeki ayar karakterleri mantıksal olarak belirtilen aralık grubunu
etkisizleştirir, yani regex aralıkta veya grupta bulunmayan herhangi bir karakterle
eşleşir.
|
d[^aeiouy]; kendisinden sonra sesli harf dışında herhangi bir karakter gelen db, dc
veya dd, d9, d#--d ile eşleşir.
|
{ }
|
Büyük parantez karakterleri, öğenin öncesinde belirli bir olay sayısı belirler. Parantez
içindeki tek değer, yalnız o kadar eşleşme olacağı anlamına gelir. Virgülle ayrılmış
bir çift sayı, karakterin öncesinde geçerli bir grup sayı olduğunu gösterir. Ardından
virgül gelen tek bir rakam, üst sınırın olmadığı anlamına gelir.
|
da{3}; ardından 3 ve yalnız 3 tane "a" gelen daaa--d ile eşleşir. da{2,4}; ardından
2, 3 veya 4 adet "a" gelen daa, daaa, daaaa ve daaaa (ama daaaaa değil)--d ile eşleşir.
da{4,}; ardından 4 veya daha fazla "a" gelen daaaa, daaaaa, daaaaaa, vb. ile eşleşir.
|
Öğe
|
Bunun Anlamı
|
Örnek
|
---|---|---|
\d
|
Herhangi bir rakam karakteri; işlevsel olarak [0-9] or [[:rakam:]] ile eşit
|
\d; 1, 12, 123 vb. ile eşleşir ancak 1b7 ile eşleşmez--bir veya daha fazla rakam karakteriyle.
|
\D
|
Herhangi bir rakam karakteri; işlevsel olarak [^0-9] veya [^[:rakam:]] ile eşit
|
\D; a, ab, ab& ile eşleşir ancak 1 ile eşleşmez--bir veya daha fazla 0, 1, 2, 3, 4,
5, 6, 7, 8 veya 9 karakteriyle.
|
\w
|
Herhangi bir "sözcük" karakteri--herhangi bir alfasayısal karakter; [_A-Za-z0-9] veya
[_[:alnum:]] ile işlevsel olarak eşittir
|
\w; a, ab, a1 ile eşleşir ancak !& ile eşleşmez--bir veya daha fazla büyük veya küçük
harf veya rakam, ancak noktalama veya diğer özel karakterler değil.
|
\W
|
Alfasayısal olmayan herhangi bir karakter; [^_A-Za-z0-9] veya [^_[:alnum:]] ile eşittir
|
\W; *, & ile eşleşir ancak ace veya a1 karakteriyle değil--bir veya daha fazla karakter
ancak büyük veya küçük harfler ve rakamlar değil.
|
\s
|
Herhangi bir alfabe dışı karakter; boşluk, yeni satır, sekme, bölünemez boşluk, vb.;
işlevsel olarak [[:space]] ile eşittir
|
sebze\s, “sebze” ve ardından gelen herhangi bir alfabe dışı karakter ile eşleşir.
Böylece "Çorbada sebze severim" ifadesi kurallı ifadeyi tetikler ancak "Sebzeli çorba
severim" ifadesi tetiklemez.
|
\S
|
Herhangi bir alfabe dışı olmayan karakter; boşluk, yeni satır, sekme, bölünemez boşluk,
vb. haricinde; işlevsel olarak [^[:space]] ile eşittir
|
sebze\S, "sebze" ve ardından gelen herhangi bir alfabe dışı olmayan karakter ile eşleşir. Böylece "Sebzeli çorba severim" ifadesi kurallı ifadeyi tetikler ancak "Çorbada sebze severim" ifadesi tetiklemez. |
Öğe
|
Bunun Anlamı
|
Örnek
|
---|---|---|
[:alpha:]
|
Herhangi bir alfabe karakteri
|
.REG. [[:alpha:]] abc, def, xxx ile eşleşir ancak 123 veya @#$ ile değil.
|
[:digit:]
|
Herhangi bir rakam karakteri; işlevsel olarak \d ile eşittir
|
.REG. [[:digit:]] 1,12, 123, vb. ile eşleşir.
|
[:alnum:]
|
Herhangi bir "sözcük" karakteri--herhangi bir alfasayısal karakter; işlevsel olarak
\w ile eşit
|
.REG. [[:alnum:]] abc, 123 ile eşleşir ancak ~!@ ile değil.
|
[:space:]
|
Herhangi bir alfabe dışı karakter; boşluk, yeni satır, sekme, bölünemez boşluk, vb.;
işlevsel olarak \s ile eşittir
|
.REG. (sebze)[[:space:]] "sebze" ve ardından gelen herhangi bir alfabe dışı karakter
ile eşleşir. Böylece "Çorbada sebze severim" ifadesi kurallı ifadeyi tetikler ancak
"Sebzeli çorba severim" ifadesi tetiklemez.
|
[:graph:]
|
Boşluk dışındaki herhangi bir karakter, kontrol karakterleri veya benzeri
|
.REG. [[:graph:]] 123, abc, xxx, ><” ile eşleşir ancak boşluk veya kontrol karakterleri
ile eşleşmez.
|
[:print:]
|
Herhangi bir karakter ([:graph:] ile benzer) ancak boşluk karakteri içerir
|
.REG. [[:print:]] 123, abc, xxx, ><” ve boşluk karakterleri ile eşleşir.
|
[:cntrl:]
|
Herhangi bir kontrol karakteri (örn. CTRL + C, CTRL + X)
|
.REG. [[:cntrl:]] 0x03, 0x08 ile eşleşir ancak abc, 123, !@# ile değil.
|
[:blank:]
|
Boşluk ve sekme karakterleri
|
.REG. [[:blank:]] boşluk ve sekme karakterleri ile eşleşir ancak 123, abc, !@# ile
eşleşmez
|
[:punct:]
|
Noktalama karakterleri
|
.REG. [[:punct:]] şunlarla eşleşir ; : ? ! ~ @ # $ % & * ‘ “ , vb., ancak 123, abc
ile eşleşmez
|
[:lower:]
|
Herhangi bir küçük harfli alfabetik karakter (Not: 'Büyük/küçük harf duyarlı eşleme'
etkinleştirilmezse [:alnum:] olarak işlev görecektir.)
|
.REG. [[:lower:]] abc, Def, bAskı, Yap, vb. ile eşleşir, ABC, DEF, BASKI, YAP, 123,
!@# ile eşleşmez.
|
[:upper:]
|
Herhangi bir büyük harfli alfabetik karakter (Not: 'Büyük/küçük harf duyarlı eşleme'
etkinleştirilmezse [:alnum:] olarak işlev görecektir.)
|
.REG. [[:upper:]] ABC, DEF, BASKI, YAP vb. ile eşleşir, abc, Def, bAskı, Yap, 123,
!@# ile eşleşmez.
|
[:xdigit:]
|
Onaltılık sayıda izin verilen basamaklar (0-9a-fA-F)
|
.REG. [[:xdigit:]] 0a, 7E, 0f, vb. ile eşleşir
|
Öğe
|
Bunun Anlamı
|
Örnek
|
---|---|---|
^
|
Dizenin başlangıcını gösterir.
|
^(ancak); "ancak" ile başlayan herhangi bir metin bloku ile eşleşir. Böylece "ancak
çorbada sebze sevdiğim bir gerçektir" ifadesi kurallı ifadeyi tetikler ama "Çorbada
sebze sevmediğim gerçektir ancak" ifadesi tetiklemez.
|
$
|
Dizenin sonunu gösterir.
|
(ancak)$; "ancak" ile biten herhangi bir metin bloku ile eşleşir. Böylece "Ancak çorbada
sebze sevdiğim bir gerçektir" ifadesi kurallı ifadeyi tetiklemez ama "Çorbada sebze
sevmediğim gerçektir ancak" ifadesi tetikler.
|
Öğe
|
Bunun Anlamı
|
Örnek
|
||
---|---|---|---|---|
\
|
Kurallı ifadede özel anlam içeren bazı karakterlerin eşleşmesi için (örneğin "+").
|
(1) .REG. C\\C\+\+, ‘C\C++’ ile eşleşir.
(2) .REG. \*, * ile eşleşir.
(3) .REG. \? ? ile eşleşir.
|
||
\t
|
Sekme karakterini gösterir.
|
(baskı)\t; "baskı" alt dizesi ve hemen ardından gelen bir sekme (ASCII 0x09) karakteri
içeren metin bloku ile eşleşir.
|
||
\n
|
Yeni satır karakterini gösterir.
|
(baskı)\n\n; "baskı" alt dizesi ve hemen ardından gelen iki yeni satır (ASCII 0x0A)
karakteri içeren metin bloku ile eşleşir.
|
||
\r
|
Satır başı karakterini gösterir.
|
(baskı)\r; "baskı" alt dizesi ve hemen ardından gelen bir satır başı (ASCII 0x0D)
karakteri içeren metin bloku ile eşleşir.
|
||
\b
|
Geri alma karakterini gösterir.
OR
Sınırları gösterir.
|
(baskı)\b; "baskı" alt dizesi ve hemen ardından gelen bir geri alma (ASCII 0x08) karakteri
içeren metin bloku ile eşleşir.
Kelime sınırı (\b), \W ile eşleşirken dizenin başında ve sonunda tahmini karakteri
atarak bir tarafta \w ve diğer tarafta \W içeren (her iki sırada) iki karakter arasındaki
bir nokta olarak tanımlanır. (Karakter sınıfları içinde \b, kelime sınırından çok
geri alma karakterini temsil eder.)
Örneğin, aşağıdaki kurallı ifade sosyal güvenlik numarasıyla eşleşebilir. .REG. \b\d{3}-\d{2}-\d{4}\b
|
||
\xhh
|
Belirli onaltılı kod ile bir ASCII karakterini gösterir (hh, iki basamaklı herhangi
bir onaltılı değeri temsil eder).
|
\x7E(\w){6}, öncesinde bir ~ (yaklaşık) karakteri ile tam altı alfasayısal karakterli
bir "kelime" içeren metin bloku ile eşleşir. Böylece '~ab12cd', '~Pa3499' sözcükleri
eşleşebilir ancak '~oops' ile eşleşmez.
|
.REG. \b\d{3}-\d{2}-\d{4}\b
|
|
333-22-4444
|
Eşleştir
|
333224444
|
Bir eşleşme değil
|
333 22 4444
|
Bir eşleşme değil
|
3333-22-4444
|
Bir eşleşme değil
|
333-22-44444
|
Bir eşleşme değil
|