- Katılım
- 5 Mayıs 2018
- Mesajlar
- 944
- Çözümler
- 1
- Elmaslar
- 367
- Puan
- 14.855
- Konum
- Antalya
- Discord İzni

- Minecraft
- Unutursun
Discord:
_thread
Merhaba MC-TR üyeleri, sizlere RegEx kullanarak basit ve iyi bir küfür filtresi yapımını anlatacağım.
Forum kuralları gereği olabildiğince dikkatli olmaya çalışacağım bu yüzden anlaşılması biraz zor olabilir :)
Nedir bu RegEx?
Regex; yani bir diğer adıyla Regular Expression, “Düzenli İfade” anlamına gelen, yazılımcılar için son derece yararlı olan, yazılımcılara zaman kazandıran, metinler içerisinde tekrar eden yapıları tespit etmeye yönelik kullanılan arama yapısıdır.
(Kaynak: [URL]https://coderspace.io[/URL])1. Method (İçerik)
(?i)\b[aA4@][mM][kK]\b|\b[aA4@][mM]\W*[kK]\b|\b[aA4@]\W*[mM]\W*[kK]\bİlk başta karmaşık gelen bu harflerin bir anlamının olduğunu biliyor musunuz?
Örnek anlatım:
İlk harf A, a, 4 veya @, ikinci harf M veya m, üçüncü harf ise K veya k harfleri olabilir.
|\b[aA4@]\W*[mM]\W*[kK]\b Her harf arasında herhangi bir sayıda harf olmayan karakter olabiliryani küfür etmeyi sanat edinmiş insanları kısmen engelleyecektir.
Ufak örnekler:
[AZ] = bütün alfabe (Büyük)
[az] = bütün alfabe (Küçük)
(?:ABC) = Kelimenin tamamı (Yani sadece A, B VE C)
Bu tür filtreleri üretebilecek bir RegEx oluşturucu:
https://www.regextranslator.com/Skript'e kullanımı: (Burada başka bir küfür kullanıldı)
Kod:
load:
delete {filtre::*}
add "(?i)f[\W_]*[uvo0a*]+[\W_]*[cq(*]+" to {filtre::*}
chat:
loop {filtre::*}:
message matches loop-value:
#KOD
2. Method (Harfler)
Bu yöntem; ilk yönteme göre çok daha basit ve kullanışlıdır.
[aA4@x]+[@mMWXx]+[kKxszXc]Belki bir kaçınız burada ne olduğunu çoktan anladı. Bu filtreleme, önceki yöntem gibi harfin
hangi değerleri taşıyacağını belirler fakat kullanımı daha basittir.
Mesela a harfi yerine 4 veya @ yazdığımızda bunu algılamasını sağlayabiliriz.
Örnek görselli anlatım:
Yani burada yaptığımız şey 3 harften oluşan bir kelimenin hangi harflerden oluşabileceğini belirlemek.
Mesela Ali kelimesi şöyle yazılabilir; @li, 4li, al1
RegEx:
[aA4@]+[lL]+[iİIı1]Artık ben @li, 4li, al1 yazsam bile bunu algılayacaktır.
Skript'e kullanımı:
Kod:
load:
delete {filter::*}
add [aA4@]+[lL]+[iİIı1] to {filter::*}
chat:
loop {filter::*}:
message matches loop-value:
cancel event
send "&cBu isim sunucuda yasaklandı! Neden olduğunu sorma banlarım seni!"
Kod:
on chat:
if message partially matches "\d":
send "Bu mesajda sayılar var d-d-dostum!"
if message doesn't match "[A-Za-z]+":
send "Bu mesaj sadece harflerden oluşmuyor! (Sayılar ve semboller)"
Umarım bu rehber hoşunuza gitmiştir <3
Son düzenleme: