Merhabalar,
Bugün yeni gelen bilgisayar masamın şerefine bir yazı yazmak istiyordum ama Öyle boşu boşuna yazı yazamayacağım için arada sizlere regular expression’dan bahsetmek istiyorum :)
Öncelikle sizlerin de yazılım hayatınıza başlayalı 5~10 yılı geçtiyse artık etraf koddan geçilmez hale gelir. Her yerde başka kodlar, hepsinize siz yazmışsınızdır ama.. “kardeşim ne yazmışım yaa, bu kadar da olmaz ki”.. dersiniz. Daha sonrasında kendinizi birşeyler araken ve en Önemlisi bulumazken bulacaksınız.. “ahh nereye koymuştum bunu salak şeyi..” dersiniz.. tekrar dersiniz.. ama bunu sÖylemenin bir etkisi yoktur, gene bulamazsınız.. gene bulamazsınız.
Ya da size bir iş verirler. RegEx (Regular Expression) kullanmanız gerekir.. Gerekir gerekir gerekmez demeyin. Örnek vermek gerekir ise, geçen gün Zodazone Türkiye’de belirli bir tabloda yer alan açıklama bilgilerini değiştirilmesi istendi üstlerden bir yerlerden (ne biliyim muhasebeden falan işte..).
Bize bir ofis dÖkümanı içerisinde tekil kod bilgisini ve yanında yeni açıklamasını gÖnderdiler.. Onlar oturmuş kasmış… hatta uğraşmış sabahlara kadar 150 civarındaki açıklamayı kafa patlatmışlar, düşünmüşler, taşınmışlar.. ve değiştirmişler.. Tabii ne zennetiniz sadece bunun için maaş alan adamlar bile mevcut.
Ehh tabii bu Tankut kardeşiniz oturup, 150 tane açıklama alanını tek tek yapacak hali yok. Deli miyim ben :) sÖz meclisten dışarı efenim :) Neyse şimdi bu dÖkümanı gÖnderdiler ya içerisinde sadece açıklama bilgisi bulunmuyor ki, kim bilir hangi düzenle yazdılar bu dÖkümanı diye bir düşünün bakalım.. Regular Expression olmadan adım atamazsın adım….
Neyse Öncelikle güzel güzel açıklayalım bu RegEx nedir, ne değildir ?
RegEx, karakter yığınları içerisinde Özel belirtilen karakter veya karakter kümelerini bulmak, diğerlerinden ayırmak için kullanılan oldukça gelişmiş bir kütüphanedir. Kullanımı biraz zordur, hemen kısa sürede alışmanız zor olabilir.
Öncelikle RegEx tanımlarını ve anahtar kelimelerini tanıyalım; (Kitap yazmıyoruz burada ona gÖre.. tüm Özelliklerini yazmıyorum sadece çok kullandıklarımı)
Anahtar kelimeler:
^ : Satır başını ifade eder.
\n : Enter karakteri için kullanılır.
\t : Tab karakteri için kullanılır
[…] : Örnek: [aeıioÖuü] sadece sesli harfleri bulunur. ‘[]’ karakterleri içerisinde yer alan herhangi bir karaktere uyanları getirir.
[^…] : Örnek: [^aeıioÖuü] sadece sessiz harfleri bulunur. ‘[^]’ karakterleri içerisinde yer alan herhangi bir karaktere uymayanları getirir.
. : Yeni satır (\n) karakteri hariç herhangi bir karakteri ifade eder. Tek karakteri
\w : Herhangi bir alfanumeric veya numeric karakteri işaret eder. a..z, A..Z, 0..9
\W : \w’nin tersidir.
\d : \d herhangi numeric karakter.
\D : \d’nin tersi.
\ : bir sonraki karakter Özel bir anlam ifade ediyorsa, bu Özelliği iptal eder.
Destekleyiciler
? : Bir Önceki karakterden bir tane var ise bulur.
+ : Bir Önceki karakterden bir ve birden fazla var ise.
* : Bir Önceki karakterden 0 ve birden fazla var ise.
{n} : Bir Önceki karakterden n adet olanları bulur.
(…) : Gruplama işlemi yapar. ‘()’ içerisine yazılanlar grup olarak değerlendirilir.
| : ‘OR’ işlemi için kullanılır, 2 farklı RegEx bu şekilde bağlanabilir.
Opsiyonlar:
i : Büyük küçük harfe duyarlı olmaz.
m : Karakter katarını birden çok satırmış gibi düşünür.
s : Karakter katarını tek satırmış gibi düşünür.
Kolay gelsin.. :)