Ufak bir kaç bilgi eklemeside ben yapayım ;
Bu eklemeler
REGEX ile alakalı olarak olsun diğerleri zaten bilinen şeyler.
Çünkü spamfilterde önemli olan nokta regex kullanımıdır.
[0-9] : Sıfırdan başlayıp, Dokuza kadar olan bütün rakamları ifade etmektedir.
[A-Z] : A harfinden başlayarak latin alfabesinde A'dan son harf olan Z ye kadar gitmektedir.
? (Soru Işareti): Kullanıldığı yere gelebilecek bütün karakterleri ve kendisinden önce gelen bir karakteri ifade etmektedir.
Örneğin; Kaf?F bu şekildeki bir regex'in uyuşabileceği kelimeler ;
KafKef Kaf12F KafffF Kaf15F vs. vs. şeklindedir.
| (Veya) : Bu özellik genellikle gruplama özelliği ile birlikte kullanılmaktadır.
() (Gruplama): Parantez içerisindeki bütün veriler bir grubu ifade etmektedir.
Küçük bir örnekle anlatmak daha mantıklı olacaktır;
(KafKef|1|123|443|vb)
Şeklinde eklenen bir regexde
'veya' ve
'gruplama' KafKef kelimesi ile başlayıp, devamında ise
1 veya
123 veya
443 veya
vb gelebilir anlamındadır. Bu şekilde uyuşan bütün regexleri geçerli sayacaktır.
\ (Slash) : Kullanılan özelliğin sadece metin değeri taşımasını sağlamaktadır.
Örneğin: . (Nokta) Herhangi bir kelime anlamını taşımaktır.
KafKe. şeklinde regex eklendiğini var sayarsak . (Nokta) konulan yerlere ne gelirse gelsin ilk
5 harfi KafKe ise regex uyuşması gerçekleşir.
Nokta kullanılan kısma illa tekil karakter gelmesi gerekmemektedir.
Zaten spamfilterde yapılan en büyük hatada bu diye tahmin ediyorum. Eklenen spamların çogunda
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
yada org vb. tarzda web adresi temsil eden reklamların engellenmesi denenmektedir.
Yapılan eklemelerde de doğal olarak nokta kullanılması hazin sonuçlara neden olabiliyor.
.ORG şeklinde eklenen bir regex, mask kullanımında olduğu gibi sadece tekil bir rakam yada harf yerine geçmiyor.
1ORG - AORG - CORG <= şeklinde geçerli olmayacaktır.
Yani şöyleki yukarıda olduğu gibi geçerliliği var fakat aynı zamanda ;
AhmetORG MehmetOrg vs. gibi kelimeler olması durumunuda etkilemektedir.
Bunu mask kullanımındaki * karakteri gibi görebiliriz.
Fakat eğer regex içerisinde slash kullanımı gerçekleştirirsek. Kullanılan nokta işaretini Nokta olarak belirtebiliriz.
Örneğin:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
yaptığımız zaman
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
bu regexten etkilenecektir.
Fakat,
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
yapılan regexte sadece
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
kelimesini geçerli sayacaktır. Tabiki regexi bu kadarla oluşturduğumu var sayar isek bu böyle olacaktır. Harici düzenlemeler yaparak
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
ile başlayan vb. gibi korumalar eklenebilir.
* Işareti: Bu işaret mask gösterimlerinde kullanılan Joker karakteri olarak biliniyor zaten. Regex de de pek bir farkı yok aslında hiçbir farkı yok.
Kullanıldığı yerdeki cümle içerisinde olabilecek bütün herşeyi ifade etmektedir.
Örneğin: Kaf* bu kaf ile başlayıp devamı ne olursa olsun anlamını taşımaktadır.
Örneğin: *Kef başlangıcı ne olursa olsun Kef ile biten herşey anlamına gelmektedir.
Şimdilik bir misafirim geldi ilerleyen dönemlerde bu konu hakkında bol örnekli açıklamalar yazacağım.
Tamamiyle şuan için aklıma gelenleri yazdığımdan ötürü bazı noktalarda hatalar yapmış cümleleri tam anlamıyla kuramamış olabilir. Konuyla ilgili sormak istediğiniz şeyleri başlık altından yazabilirsiniz fırsat buldukça cevaplarız.