5 Temmuz 2014 Cumartesi

Düzenli İfade Örnekleri

Bazı düzenli ifade örneklerini aşağıya ekledim.

Düzenli İfadelerde Kullanılan Özel Karakterler Sınıfları
Özel karakter sınıfları belli bir kümedeki karakterlerle eşleşirler
Basit bir şekil aşağıda.

Harfler

[a-z] aralığında boşluk karakteri (space) de aralığa dahildir.

Sayılar
\d ile bir sayı karakteri ifade edilir.

\D ile sayı olmayan bir karakter ifade edilir.
Örnekte "046 55.5" şeklindeki bir telefon numarası non-digit karakterler silinerek "046555" haline getiriliyor.
Regex.Replace(value, @"\D", "") 

Boşluk
\s ile boşluk (space) karakteri ifade edilir. Anladığım kadarıyla \t (tab) karakteri de boşluk olarak kabul ediliyor.

Boşluk olmayanlar 
 \S ile space olmayan karakterler ifade edilir. Örneğin (\S+)\s+(.+?) ile space olmayan bir grup, sonra bir veya daha fazla boşluk, sonra ise yakalamak istediğimiz grubu buluruz. Space olmayan karakterleri [^\\s] şeklinde de ifade edebileceğimizi sanıyorum. 

Kelime
\w ile bir word (kelime) ifade edilir. [A-Za-z0-9_] ifadesinin kısa halidir. string.replaceAll java doesn't work with lookaround regex? örneğinde \w ifadesine { karakterinin dahil edilmediği görülebilir. 

Kelime Olmayanlar
\W \w kısaltmasının tam tersini yapar. Yani alfanümerik olmayan imla işareti gibi "," ";" "." gibi karakterleri bulur.

Çapalar (Anchor)
Çapalar ile düzenli ifade moturu bir sonraki karakteri işlemez. Ama koşulun tutup tutmadığını değerlendirir.

\b ile word boundary ifade edilir. Örneğin \bcat\b ifadesi ile The cat scattered his food all over the room. cümlesinde sadece cat kelimesi ile eşleşilir.
\B \b kısaltmasının tam tersini yapar
^ ile string'in başı belirtilir. Multiline modu kullanılmıyorsa cümle içinde \n karakterini dikkat almaz.

Quantifiers 

Grubun Uzunluğunu Kontrol Etme Örnekleri
0 ila 11 tane arasında olması gerektiğini belirtmek için \d{0,11} yazıyoruz. Tamı tamına 11 tane olması için \d{11} yazıyoruz. Bir başka örnek ise burada.

Eğer bir quantifier  bir kaç defa tekrar edecekse örneğin, parantez içine alma gerekebilir. Örnek:
^(\d{1}){2} // iki defa tekrar etsin
Greedy

Düzenli ifadeler default olarak greedy çalışırlar. Örneğin \s+ ile azami eşleşme yapılırken \s+? ile reluctant çalışması sağlanır. Yani ? işareti greedy çalışmayı engeller.

Escape yapılması gereken özel karakterler
  • { karakteri aslıda "kaç tane"anlamına gelen kısaltma olduğu için - örneğin \d{2}'nin escape ile işaretlenmesi gerekir. Dolayısıyla \d\\{2 şeklinde yazılmalı.
İçerildiğini Bulma Örnekleri
Bir ifadenin içerildiğini bulmak
".*true.*" örneğinde string içinde true kelimesinin geçip geçmediği geçtiği bulunabilir.

Bir veya birkaç karakterin içerildiğini bulmak
.*[x-z].* örneğinde x-z arasındaki (her ikisi de dahil) herhangi bir karakterin içerildiği kontrol edilir.

Bir ifade ile başlanılmadığını bulmak
"^[^\\d].*" örneğinde string'in sayı ile başlayıp başlamadığı bulunabilir

İçeriği Yakalama Örnekleri
Bir ifade ile başlamak ve geri kalanı yakalamak





Hiç yorum yok:

Yorum Gönder