While loop kullanmaktansa Regex kullanabiliriz. Ben $regsub() kullanmayı uygun gördüm çünkü $regsub() önce regex eşleşmesi yapıyor yani aynı $regex() gibi, daha sonra yardımcı bi text kullanarak önceden aldığımız texti değiştiriyor. Benzetmek gerekirse $replace() mantığı da diyebiliriz. alias hmm { var %text = $1-, %done, %o = $regsub(%text, /(.)\1+/g, \1, %done) | return %done }
Yukardaki kodu remote'a (ALT+R) koyup $hmm(istediğiniz cümleee) yi yazdığınızda aynı CMaster'ın yazdığı gibi yanyana olan harfleri teke indirgiyor, onunkinden tek farkı daha hızlı olması.
Parametreleri anlatmak gerekirse; () - ayırma parantezleri, parametreleri birbirinden ayırmaya yarıyor. \1 - ilk saklanan eşitlik + - bir ya da daha fazla g - birden çok kez karşılaştır. // gerçek regexin içeriğini kuşatıyor, çeviriyor.
$regsub()'ın kullanımı ise,
$regsub(istediğimiz bi text,kullanacağımız regex içeriği,daha sonra yeri değiştirilecek text) on @*:text:*:#arslan:{ if ($nick isreg #) { inc -u60 $+(%,repeat.,$chan,.,$nick,.,$hmm($replace($strip( $1-),$chr(32),$chr(46)))) | if ($($+(%,repeat.,$chan,.,$nick,.,$hmm($replace($str ip($1-),$chr(32),$chr(46)))),2) >= 3) { kick # $nick tekrar etme. } } }
Konu el33t tarafından (30 Ağustos 2005 Saat 10:00 ) değiştirilmiştir.
|