Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 4

Regular expression bir metni dzenlemek yada metin ierisinden belli kurallara uyan alt metinler elde etmek

iin kullandmz bir dildir. Bir regular expression, string tipindeki karakter topluluuna uygulanr. Sonu olarak substringler oluur yada orjinal metnin bir ksmn ieren deitirilmi yeni metinler elde edilir. Regular Expressionlarda Kullanlan zel Karakterler ve Etkileri Regular expression desenleri tanmlamada kullanlan zel karakterleri rnekleri ile anlatrsak sanrm regular expressionlar daha tand ve kolay gelebilir. 1.) . Karakteri Tek bir karakteri temsil eder(yeni satr karakteri hari). CSharp.edir eklindeki bir desen CSharpnedir, CSharpNedir, CSharpSedir, CSharp3edir gibi stringleri dndrebilir. 2.) [] Karakterleri Bir arrayi yada aral temsil eder. CSharp[SNY]edir deseni, CSharpSedir, CSharpNedir ve CSharpYedir stringlerini dndrr. CSharp[a-z]edir eklindeki kullanm aralk belirtmeye yarar. CSharp[0-9]edir eklindeki klanlm ise saysal aralk belirtmeye yarar. 3.) ? Karakteri Kendinden nceki karakterin stringte olmas yada olmamasn salar. CSharpn?edir deseni CSharpedir yada CSharpnedir dndrr. 4.) \ Karakteri Kendinden sonraki zel karakterin stringe dahil edilmesini salar. CSharpnedir\? deseni CSharpnedir? Stringini dndrr. (Eer \ karakterini kullanmam olsaydk CSharpnedi yada CSharpnedir dnerdi.) 5.) * Karakteri Kendinden nceki karakterin yada stringin hi olmamas yada istedii sayda olmasn salar. CSharpnedir* deseni, CSharpnedi, CSharpnedir, CSharpnedirr, CSharpnedirrr, ... dndrr. CSharp(nedir)* deseni ise CSharp, CSharpnedir, CSharpnedirnedir, ... dndrr. 6.) {} Karakterleri Kendinden nce gelen karakterin belirtilen sayda tekrar etmesini salar.

C{4}Sharpnedir deseni, CCCCSharpnedir stringini dndrr. 7.) ^ Karakteri Satr ban ifade eder. ^CSharpnedir deseni, satr banda CSharpnedir stringi varsa bunu dndrr. 8.) $ Karakteri Satr sonunu ifade eder. CSharpnedir$ deseni, satr sonunda CSharpnedir stringi varsa bunu dndrr. Basit Bir Tarih Deseni Yapalm imdi iin pratiine gelelim ve adm adm tarih deseni oluturalm. Daha sonra ise oluturduumuz bu tarih desenini bir konsol programnda kullanalm. Tarih desenimiz bir string ierisindeki, GG/AA/YYYY formatlarndaki tarihleri yakalayacak yapda olsun. nce desenimizin GG yani tarihin gn belirtilen ksmn tanmlayalm : (0?[1-9]) // 1, 2, .., 9, 01, 02, ..., 09 gibi yazlm gnleri tanmlar. ([12][0-9]) // 10, 11, ..., 29 gibi yazlm gnleri tanmlar. (3[01]) // 30, 31 gnlerini tanmlar. // Bu tanm OR (|) ilemiyle // birletirirsek gn tanmn elde ederiz. // Gn tanm : ((0?[1-9])|([12][0-9])|(3[01]))

imdi desenimizin AA yani tarihin ay belirtilen ksmn tanmlayalm : (0?[1-9]) // 1, 2, .., 9, 01, 02, .., 09 gibi yazlm aylar tanmlar. (1[0-2]) // 10, 11, 12 aylarn tanmlar.

// Bu iki tanm OR ilemiyle // birletirirsek ay tanmn elde ederiz. // Ay Tanm : ((0?[1-9])|(1[0-2]))

imdi desenimizin YYYY yani tarihin yl belirtilen ksmn tanmlayalm : ([12][0-9][0-9][0-9]) //1000 ile 2999 yllar arasndaki tm yllar ierir. Ve son olarak tanmladmz gn, ay ve yl desenlerini / ile birletirelim : ((0?[1-9])|([12][0-9])|(3[01]))(/)(0?[1-9]|1[0-2])(/)([12][0-9][0-9][09])) using System; using System.Text.RegularExpressions; class Test { public static void Main() { // Regular Expression iin bir desen (pattern) tanmlyoruz : string tarihDeseni=@"(?((0?[1-9])|([12][0-9])|(3[01]))(/)(0?[1-9]|1[02])(/)([12][0-9][0-9][0-9]))"; // Regular Expressionumuzu tanmlyoruz : Regex benimRegex=new Regex(tarihDeseni); // Kullancdan tarih ieren metni talep ediyoruz : Console.WriteLine("Ltfen iinde tarih olan bir metin giriniz :"); // Tarih arayacamz metni konsoldan alyoruz : string metin=Console.ReadLine(); // Metin ierisindeki tarihleri (birden fazla olabilir) Collection nesnesine atyoruz : MatchCollection benimMatchCollection=benimRegex.Matches(metin);

// Metin iindeki herbir tarihi ekrana yazdryoruz : foreach(Match benimMatch in benimMatchCollection) { Console.WriteLine(benimMatch.Groups["tarih"]); } Console.Read(); } }

You might also like