![]() |
| | #1 |
| Konu: Regular Expressions ( Regex ) Tarih: 18.03.2025 Merhaba sevgili IRC Rehberi kullanıcıları, bugün sizlere anlatmak istediğim konu başlıktada gördüğünüz gibi regex kullanımı olacaktır. Forumda bununla ilgili bir anlatım göremediğim için elimden geldiğince size anlatmaya çalışacağım. mIRC, IRC (Internet Relay Chat) için kullanılan bir istemcidir ve kullanıcıların çeşitli otomasyon ve özelleştirme işlemleri yapmasına olanak tanır. mIRC scripting, bu istemcinin işlevselliğini artırmak için kullanılan bir programlama dilidir. Regex ise metinleri analiz etmek ve işlemek için kullanılan güçlü bir araçtır. Regex, belirli bir desenle eşleşen metin parçalarını bulmak için kullanılan bir dildir. Metin içinde arama yapma, değiştirme ve doğrulama gibi işlemler için kullanılır. mIRC scripting içinde regex kullanmak için $regex(text,eşleşme) şeklinde kullanabilirsiniz. Regex ile metin arama ve eşleştirme işlemleri yapabilirsiniz. Örnek; Kodalias testRegex {
var %text = "Merhaba, bugün hava çok güzel."
var %pattern = "h[a-z]+"
if ($regex(%text, %pattern)) {
echo -a Eşleşme bulundu: $regml(1)
}
} mIRC Regex Fonksiyonları; $regex: Metinde regex deseni arar. $regml: Eşleşen metni döndürür. $regsub: Eşleşen metinleri değiştirmek için kullanılır. Örnek; Kodalias replaceText {
var %text = "mIRC çok eğlenceli."
var %pattern = "eğlenceli"
var %replacement = "harika"
var %result = $regsub(%text, %pattern, %replacement)
echo -a Sonuç: %result
} $regsub ile ilgili bir örnek; Kodon *:TEXT:*:#:{
var %metin = $1-
var %yeniMetin = $regsub(%metin,cat,dog)
if (%yeniMetin != %metin) {
msg $chan Eski Metin: %metin
msg $chan Yeni Metin: %yeniMetin
}
} Kodvar %yeniMetin = $regsub(%metin,cat,dog): %metin Regex ile daha karmaşık desenler oluşturabilirsiniz. Örneğin, e-posta adreslerini doğrulamak için aşağıdaki deseni kullanabilirsiniz: Kodvar %emailPattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" Karakterler: a, b, 1, 2 gibi belirli karakterler. Boşluk: \s (boşluk, tab, yeni satır gibi boşluk karakterlerini temsil eder). Boşluksuz: \S (boşluk olmayan karakterler). Herhangi Bir Karakter: . (herhangi bir karakter ile eşleşir). Başlangıç: ^ (desenin metnin başlangıcında olmasını zorunlu kılar). Bitiş: $ (desenin metnin sonunda olmasını zorunlu kılar). Gruplama: () (içindeki karakterleri gruplar). Alternatif: | (veya anlamına gelir; örneğin, a|b ifadesi "a" veya "b" ile eşleşir). Sıfır veya Daha Fazla: * (önceki öğenin sıfır veya daha fazla kez tekrarlanmasını sağlar). Bir veya Daha Fazla: + (önceki öğenin en az bir kez tekrarlanmasını sağlar). Sıfır veya Bir: ? (önceki öğenin sıfır veya bir kez tekrarlanmasını sağlar). Karakter Seti: [] (belirtilen karakterlerden herhangi biri ile eşleşir). Örneğin, [abc] "a", "b" veya "c" ile eşleşir. Karakter Aralığı: - (belirtilen aralıktaki karakterlerle eşleşir). Örneğin, [a-z] küçük harflerle eşleşir. Dijit: \d (0-9 arasındaki rakamlarla eşleşir). Dijit Olmayan: \D (dijit olmayan karakterlerle eşleşir). Kelime Karakteri: \w (alfabetik karakterler, rakamlar ve alt çizgi ile eşleşir). Kelime Olmayan Karakter: \W (kelime karakteri olmayanlarla eşleşir). Kesirli Tekrar: {n} (önceki öğenin tam n kez tekrarlanmasını zorunlu kılar). Aralık: {n,m} (önceki öğenin n ile m kez arasında tekrarlanmasını sağlar). Örnek sayı deseni; Kod^\d{3}-\d{2}-\d{4}$ Açıklama; ^ ile başlangıç, \d{3} ile üç rakam, - ile tire, \d{2} ile iki rakam, - ile bir tire daha, \d{4} ile dört rakam, $ ile bitiş belirtir. Bazı örnekler; Kodon *:TEXT:*:#:{
if ($regex($1-,^Hello)) {
msg $chan Metin 'Hello' ile başlıyor.
}
} Kodon *:TEXT:*:#:{
if ($regex($1,cat|dog)) {
msg $chan Eşleşen kelime bulundu: $regml(0)
}
} Kodon *:TEXT:*:#:{
if ($regex($1,[aeiou])) {
msg $chan Sesli harf bulundu: $regml(0)
}
} Kodon *:TEXT:*:#:{
if ($regex($1,\d{3})) {
msg $chan Üç ardışık rakam bulundu: $regml(0)
}
} Kodon *:TEXT:*:#:{
if ($regex($1,^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$)) {
msg $chan Geçerli bir e-posta adresi: $1
}
} Bu örnekler, mIRC scripting kullanarak regex ile metin eşleştirmeleri yapmanın yollarını göstermektedir. Her bir örnek, belirli bir regex deseni ile metin üzerinde nasıl işlem yapabileceğinizi gösterir. Gerisi sizin yaratıcılığınıza kalmış deneme yanılma yöntemi ile daha iyi kavrayacaksınızdır. Regex eğitim konumuz bitmiştir. İyi forumlar dilerim. 👍 3
________________ Stay strong, trust your instincts. Set your spirit free, never forget your spiritual side. Even in the midst of hardships, there is always a light to guide your way. | |
| |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |