![]() |
![]() |
![]() | #1 | |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Regex kullanımı Notlar: ircforumlari.net için 5-Eylül-2005 tarihinde Alience tarafından yazılmıştır. Buradaki yazılanlar en az 3 tane yabancı kaynaktan (genelde php kaynakları) ve kendi deneyimlerimin sonucu mümkün olduğunca basit,kısa ve karşılaştırmalı ele alınmıştır. Expression (yani türkçesi ifade) yazıda aranacak kelime cümle ve veya harf olarak kullanıldı String en basitinden düz cümle demektir :) . Regex nedir?: En basitinden ve anlayacağınız şekilde string karşılaştırma,string içi arama işlemini gerçekleştirmemizi sağlayan komut diyebiliriz. Mirc'de aynı işi yapan operatörler var ama regex hem daha hızlıdır hemde çok daha esnek bir yapıda olduğundan büyük kolaylık sağlar şöyleki: if *deneme* iswm $1- veya if deneme isin $1- ile if $regex($1-,deneme) veya if $regex($1-,deneme) == 1 aynıdır. Regex kullanımı: Regex'in en basit kullanımı ile mirc help te $regex([name], text, re) olarak açıklandığını biliyoruz. burada genel operatörler'i anlatmaya çalışacağım. Yazacağım komutlar $regex(bu bir örnektir,bir) şekline olacak bunu siz aliasese veya nerede kullanmak istiyorsanız ona göre ayarlamak zorundasınız şöyleki hemen sonucu görmek isityorsanız en basit yöntem mirc de komut olarak //echo : $regex(bu bir örnektir,bir) yazıp entere basmanız eğer bir yazısı "bu bir örnektir" de varsa ki var 1 değeri döner, eğer bar $regex(bu bir örnektir,bar) yazarsak 0 değeri döner. Operatörler: 1: Basit kullanım: Regexin en basit kullanımı yukarıdada bahsedildiği gibi $regex(string,expression) şeklindedir string içinde expression yazılan yerdeki kelime veya cümle varsa 1 olarak döner yoksa 0 olarak döner. 2: "." Herhangi bir karakter operatörü: expression da "." herhangi bir karakter yerine geçer şöyleki: $regex(bu bir örnektir,bir) yerine $regex(bu bir örnektir,b.r) yazarsak yine 1 değeri döner anlamıda b ile r arasına bir karakter gelecek ama ne olduğu önemli değil sadece bir karakter gelmesi yeterli. 3: Tekrar operatörleri 3.1: "*" Hiç yok yada birden çok olabilir Operatörü: Şimdi bu başlıkta ne demeyin "*" aynı başlıktaki işi yapıyor, aranan string konulduğu yerin önündeki harfle devam ediyorsa veya devam etmiyorsa regex 1 olarak döner. kısacası i* yazdıkmı orada sadece i harfi olabilir veya tekrar eder şekilde olabilir (örn: iiiiiiiiiii gibi.) bu durumda 1 değeri döner, veya //echo : $regex(bu br örnektir,b*r) gibi arada birşey olmasa dahi 1 değeri döner. Daha iyi anlamanız için örnekler aşağıda. Örnekler: //echo : $regex(bu bir örnektir,bi*) //echo : $regex(bu br örnektir,b*r) //echo : $regex(bu br örnektir,ba*r) //echo : $regex(bu biiiiiiiir örnektir,bi*r) //echo : $regex(bu biiiiiiiiaaiir örnektir,bi*r) 3.2: "+" Bir tane veya birden çok olabilir operatörü: "*" operatörünün hemen hemen aynısı ama tek farkı i+ gibi yazdıkmı en az bir i veya birden çok iiiiiiiiiiiiiii gibi devam edeni görmesi ama i harfi olmadımı * operatörü yerine 1 değilde 0 dönmesi (başlıklardan anlaşıldığı üzere * da hiç yok, + da bir veya daha fazla). farkı ayırabileceğiniz örnekler: //echo : $regex(bu br örnektir,ba*r) //echo : $regex(bu br örnektir,ba+r) //echo : $regex(bu bir örnektir,b*r) //echo : $regex(bu bir örnektir,b+r) 3.3: "?" Hiçolmayabilir yada birtane olabilir operatörü: "." operatöründen tek farkı yerine herhangi bir karakter gelme zorunluluğu olmaması. Farkları anlamanız için örnekler: $regex(bu bir örnektir,b.r) $regex(bu bir örnektir,b?r) $regex(bu br örnektir,b.r) $regex(bu br örnektir,b?r) 3.4: "{..}" uzunluk operatörü: tanımlama şekilleri {uzunluk}, {min,max}, {min, }şekillerinde olabilir. Regex'te br{3} gibi belirtiğimiz zaman aranan stringin içinde brrrr gibi br den sonra en az 3 tane son yazılan karakterden olmalı ki regex 1 değeri dönsün. Kısacası + operatörünün hemen hemen aynısı ama farkı tekrar eden sayıların aramasını bizim sınırlandırabilmemiz. [color=blue]//echo : $regex(bu brr örnektir,br{3}) //echo : $regex(bu brrr örnektir,br{3}) //echo : $regex(bu abrbrbr örnektir,a(br){3}) ;buda br nin grup şeklinde devam etmesi () grup operatörü ne işe yaradığı aşağıda yazıyor. 4: "|" veya Operatörü: if a == b || a == c dekindeki aynı mantık a b ye eşit olabilir veya a c ye eşit olabilir, regexte $regex(deneme bu bir örnektir,bar|bir) yazarsak "bu bir örnektir" yazısında "bar" yok ama "bir" var ve regex 1 değeri olarak döner. 5: "^" başlama Operatörü: ^ önüne konulan expression aranan stringin ilk kelimesi ise 1 değeri döner, eğer yukarıdaki örneklerdeki gibi "bir" kelimesini ararken $regex(bu bir denemedir,^bir) şeklinde yazarsak 0 değeri döner ama $regex(bu bir denemedir,^bu bir) şeklinde yazarsak 1 değeri döner, Özetle bu* iswm bu bir denemedir ile aynı işlemi yapıyor. 6: "$" bitme Operatörü: ^ operatörü ile aynı olup tek farkı aranan string'in o expression ile bitmesi gereklidir. Özetle $regex(bu bir denemedir,denemedir$) veya $regex(bu bir denemedir,dir$) yazarsak 1 değerleri döner, yani if *dir iswm ile aynıdır. 6: "[[: :]]" Karakter sınıfı Operatörleri: kullanımları $regex(string,[[:operatör:]]) Operatörleri ve anlamları: alnum : yazı karakterleri ve sayılar alpha : sadece yazı karakterleri blank : space veya tab. cntrl : kontrol karakterleri (ASCII de 0177 ve 040 tan duşuk karakterler) digit : sayılar lower : küçük harf space : boşluk, $cr (carriage return) , $crlf (yeni satır), tab upper : büyük harf xdigit : hexadesimal sayılar: 0--9, a--f, A--F Örnekler: //echo - $regex(AAAA23 $+ $cr,[[:space:]]) //echo - $regex(AAAA23,[[:space:]]) //echo - $regex(AAAA23,[[:digit:]]) //echo - $regex(AAAA,[[:digit:]]) vs.. 7: "-" Aralık Operatörü: Belli aralıklari karşılaştırmaya yarar 1-9,a-z,a-c gibi sırasıyla 1 den 9 a kadar, a dan z ye kadar kücük harfler, a dan c ye kadar kücük harfler'i arar. Örnekler: //echo - $regex(3,[1-5]) //echo - $regex(5,[1-5]) //echo - $regex(8,[1-5]) 8: "()" Grup Operatörü: Yukarıda bir örnekte bahsetiğim gibi aradığınız bir expression'u gruplamak için kullanılır br* yazarsak sadece r ye göre işlem yapılır, ama (br)* yaparsak br ye göre işlem yapar. 9: Kelime Operatörleri: \b : Kelime tam anlamıyla eşitse 1 değeri döner Örnekler: $regex(rat,\brat\b) $regex(arata rat a,\brat\b) $regex(arata rata,\brat\b) $regex(arata rata,rat\b) vs.. \B : Kelime içeriyorsa 1 değerini döner \b deki gibi space'e gerek yoktur. $regex(crate,c\Brat\Be) \s : Herhangi bir boşluk karakteri varsa 1 değeri döner. $regex(deneme mesajı,\s) \S : \s nin tam tersi boşluk yoksa 1 döner. $regex(deneme,\S) \w : Herhangi kelime sayılabilecek karakter içeriyorsa 1 değeri döner. $regex(deneme,\w) \W : \w nin tam tersi. $regex(bunu dene,\W) \d : Herhangi bir sayı varsa 1 değeri döner $regex(deneme 20,\d) \D : Herhangi bir sayı yoksa 1 değeri döner $regex(deneme 20,\D) Extra not: regexte \, {, gibi karakterleri aramak için başına \ koymamız gerekli böylece onları operatör değilde karakter olarak görür. Bu 3. gönderişim allahtan hdd yi yedeklerken cd ye kaydetmişim :D. | |
| ![]() |
![]() | #2 |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı iswm de !iswm yaparsak tersi oluyor .. $regex de bunu nasil saglayabiliriz ? [box=SpecifiC]!$regex([arguman])[/box] Konu SpecifiC tarafından (05 Ekim 2008 Saat 13:29 ) değiştirilmiştir. |
| ![]() |
![]() | #4 |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı Alience zamanında (2005) yılında emek sarf edip yazmış. Aradan 3 yıl gecti ve konunun daha çok örnekli (Güncel sorunlarla ilgili örneklemeler) bir anlatıma ihtiyacı var... daRkMorGaN'a katılıyorum,yeni bir ders eğitimi bekliyoruz... |
| ![]() |
![]() | #5 | ||||
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı
Daha Geniş ßir Şekilde Regex'in Anlatıldığı ßir Döküman.. Eklenti Kısmına Ekledim İndirip ßakabilirsiniz.
__________________ Şimdi Saat Sensizliğin Ertesi.. | ||||
| ![]() |
![]() | #6 |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı CesurYurek son verdiğini indirip açınca daha da beter kafayı yedim regex arayışım sürüyor hala Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
| ![]() |
![]() | #7 | ||||
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı
regex diğer konulara göre daha ağır ama biraz anlamaya başlayınca en zevkli ve kolayı olduğunu farkedeceksiniz.. help.chm'de zaten yeterince bilgi vermemektedir.bu dökümanları iyice kavrayıp pratik yaptıktan sonra yavaş yavaş devamı gelecektir. birgünde okuyupta öğreneceğinizi düşünmüyorum zaman ve emek gerektiren bir konu
__________________ Şimdi Saat Sensizliğin Ertesi.. | ||||
| ![]() |
![]() | #8 | ||||||||
Çevrimiçi ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı
bende bir zamanlar regex'e çok uzak bir insandım Alience'nin regex dökümanını açıp okuduğumda bu regex modülünü yazan bir insanmı hadi o insansa bunu döküman haline sunan kişidemi insan? diye bir düşünce içersinde kalmıştım açıkcası bu ne yav böle demiştim :D tabi daha sonrasında bilirkişi (Alience) ye birkaç soru sordum sağolsun oda cevapladı ama hala regex.chm dosyasından birşey anlamıyordum. şimdi bu muhabbet ile alakası ne diyeceksin şöyle bağlim; Alience'nin regex.chm dosyasından birşey anlamazken onunla bağdaşmış olan mIRC Scripting Regex'ine yakın bir döküman buldum UnrealIRCD Spamfilter Regular Expression (UnrealIRCD Docs) burada regex gördüm ve okudum sonra Alience'nin Regex dökümanına bakınca ne kadar anlaşılır ve anlatılır bir dilde anlattığının farkına vardım. Açıkcası Regex'i öğrenmek çok basittir ama Regex performansını kapmak onu iyice kavramak iyi bir mirc scripting kabiliyeti ister..
benim regex kaynağım bu ve regex.chm gerisi ise hayal gücü. | ||||||||
| ![]() |
![]() | #9 | ||||
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: Regex kullanımı
haklısın , regex konusunu görmeden önce sadece öğrenilerek kod yazılabilceğini söylerdim fakat performansın da önemli olduğunu regex sayesinde gördüm . | ||||
| ![]() |
![]() |
Etiketler |
kullanimi, kullanımı, mirc, mirc download, mirc indir, regex |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
bazı identifierlar ile regex kullanımı ve $regml | manikdepresif | mIRC Scripting Dersleri | 4 | 24 Şubat 2024 19:13 |
Regex | Regex | IRC Künye | 48 | 25 Kasım 2018 15:38 |
RegeX | KoRay | mIRC Scripting Sorunları | 3 | 07 Mayıs 2010 21:50 |
$Regex | sensiz-seven | mIRC Scripting Programları | 0 | 29 Ekim 2009 12:14 |
$regex | MoRtaL_ | mIRC Scripting Sorunları | 23 | 04 Şubat 2008 11:42 |