IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi  
 sohbet
Sohbet chat


mIRC Scripting Dersleri mIRC veya IRC komutları hakkında detaylı anlatım makalelerine bu başlık altından ulaşabilirsiniz.

💬 Bu Alana Reklam Ver ! 🎉 Hemen Katıl!
6Beğeni(ler)
  • 3 Gönderen Mylife
  • 1 Gönderen Chloe
  • 1 Gönderen BuKLe
  • 1 Gönderen Feragat


 
Seçenekler Stil
Alt 18 Mart 2025, 13:06   #1
i don't care if i'm misfit.
Mylife - ait Kullanıcı Resmi (Avatar)

Arrow Regular Expressions ( Regex ) Kullanımı

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;

Kod

alias 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)
  }
}
Bu örnekte, "h" ile başlayan ve ardından gelen küçük harflerden oluşan kelimeleri arar.

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;

Kod

alias replaceText {
  var %text = "mIRC çok eğlenceli."
  var %pattern = "eğlenceli"
  var %replacement = "harika"
  var %result = $regsub(%text, %pattern, %replacement)
  echo -a Sonuç: %result
}
Bu örnek, "eğlenceli" kelimesini "harika" ile değiştirir.

$regsub ile ilgili bir örnek;

Kod

on *:TEXT:*:#:{
  var %metin = $1-
  var %yeniMetin = $regsub(%metin,cat,dog)
  
  if (%yeniMetin != %metin) {
    msg $chan Eski Metin: %metin
    msg $chan Yeni Metin: %yeniMetin
  }
}

Kod

var %yeniMetin = $regsub(%metin,cat,dog): %metin
İçindeki tüm "cat" kelimelerini "dog" ile değiştirir.

Regex ile daha karmaşık desenler oluşturabilirsiniz. Örneğin, e-posta adreslerini doğrulamak için aşağıdaki deseni kullanabilirsiniz:

Kod

var %emailPattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
Regex Deseni İçindeki Parametreler;

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}$
Bu desen, "123-45-6789" formatında bir sosyal güvenlik numarasını doğrular.

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;

Kod

on *:TEXT:*:#:{
  if ($regex($1-,^Hello)) {
    msg $chan Metin 'Hello' ile başlıyor.
  }
}
Burada regex içerisinde hello ile başlayan bir cümleyi yakala diyoruz.

Kod

on *:TEXT:*:#:{
  if ($regex($1,cat|dog)) {
    msg $chan Eşleşen kelime bulundu: $regml(0)
  }
}
Burada ilk kelime cat veya dog içeriyorsa yakala diyoruz. Regex içerisinde | işareti ile arama veya eşleşmeleri arttırabiliriz.

Kod

on *:TEXT:*:#:{
  if ($regex($1,[aeiou])) {
    msg $chan Sesli harf bulundu: $regml(0)
  }
}
Burada belirtilen harfler eğer ilk kelimede içeriyorsa yakala diyoruz.

Kod

on *:TEXT:*:#:{
  if ($regex($1,\d{3})) {
    msg $chan Üç ardışık rakam bulundu: $regml(0)
  }
}
Burada rakam eşleştirmesi yapıyoruz 3 ardışık rakam varsa yakala diyoruz.

Kod

on *: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
  }
}
Burada e-posta doğrulamak için kullanabileceğimiz formata uygun bir eşleştirme yapıyoruz.


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)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı





Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 02:09.