Kurallı İfadeler – Regular Expression

 
 
 
 

Hemen her dilde kullanılabilen, kurallı ifadeler; belirli bir kurala ya da düzene göre oluşturulmuş metinler üzerinde işlemler yapabilmemizi sağlıyor.

Kurallı ifadeler oluşturabilmek için bazı kalıplar ve karakterler kullanılıyor. Bunları öğrendiğinizde de kurallı ifadeleri öğrenmiş oluyorsunuz zaten 🙂

Karakterler ve Kalıplar :

(Oluşturduğunuz ifadeleri denemek gibi bir düşünceniz olursa rubular.com ‘u kullanabilirsiniz)

Not : Kullanılan karakterler de büyük küçük harf duyarlılığı mevcut. Bu yüzden bir ifade oluştururken aynı harfin hem küçük hem büyüğünü eklemeli ya da ifadenin sonuna /i ekleyerek büyük küçük harf duyarlılığını kapatmalısınız.

[abcABC]

ya da

[abc]/i

şeklinde.

 Not : Kurallı ifade yazarken kullanılan karakterleri metin içinde de kullanmak gerekebiliyor. Böyle durumlarda ters slash eklemek yeterli oluyor.

Örnek :

  • c\+\+  => c++
  • kim\?  => kim?
  • \*ahmet => *ahmet
  • 3\$ => 3$
  • \^_\^ => ^_^
  • localhost\/deneme\/wp\.php => localhost/deneme/wp.php

[] Kalıbı

İki köşeli parantezin arasına yazılan karakterlerden herhangi birisini temsil ediyor, karakter yerine aralık da yazılabiliyor. Yani [abc] şeklindeki bir kullanım a,b ve c harfini temsil ederken [a-z] şeklindeki kullanım a harfinden z harfine kadar olan bütün harfleri temsil ediyor.

Bilinmesi faydalı olan aralıklar :

  • [a-z] => a harfinden z harfine kadar olan küçük harfleri temsil eder, Türkçe harfler hariç.
  • [a-zçğıöşü] => a harfinden z harfine kadar olan küçük harfleri temsil eder, Türkçe harfler dahil.
  • [A-Z] => A harfinden Z harfine kadar olan büyük harfleri temsil eder, Türkçe harfler hariç.
  • [A-ZÇĞİÖŞÜ] => a harfinden z harfine kadar olan büyük harfleri temsil eder, Türkçe harfler dahil.
  • [A-zçğıöşüÇĞİÖŞÜ] => A harfinden z harfine kadar olan büyük ve küçük harfleri temsil eder, Türkçe harfler dahil.
  • [0-9] => 0 dan 9 a kadar olan rakamları temsil eder.
  • [A-zçğıöşüÇĞİÖŞÜ0-9] => 0 dan 9 a kadar olan rakamları ve a harfinden z harfine kadar olan büyüklü, küçüklü, Türkçe karakterler dahil, bütün harfleri temsil eder.

Örnek :

  • [ky]edi => kedi, yedi
  • ar[aı] => ara, arı
  • k[a-z]r[a-z] => kara, kuru, kira, kare, kura, …
  • 1[0-9] => 10, 11, 12, 13, 14 ,15, 16, 17, 18, 19
  • [127]5 => 15, 25, 75

[^] Kalıbı

İki köşeli parantezin içine ^ karakterinden sonra yazılan karakterler hariç bütün karakterleri temsil eder.

Örnek :

  • [^a]t => a ile başlayan hariç 2  hepsi => et, it , öt, ut, …
  • k[^abc]z. => a,b ve c harfi hariç bütün karakterler olabilir => kuzu, kızı, koza, közü, k3z4, k?z5, k=z_, …
  • 20[^8] => 8 hariç bütün karakterler yani 208 hariç her şey olabilir => 200, 203, 209, 20a, 20C, 20/, …

. Nokta Karakteri

Nokta herhangi bir karakteri temsil ediyor. Burada ki önemli nokta sadece bir karakteri temsil ediyor ve herhangi bir harf, sayı, özel karakter ya da boşluk yerine geçebiliyor.

Örnek :

  • g.z => gez, göz, giz, gaz, …
  • tab. => tabi, tabu, tab2, tab?,
  • gez.gen => gezegen, gez-gen, gez gen,
  • k[au]z. => kazı, kuzu,

+ Artı Karakteri

Artı kendinden önceki karakter ya da kalıbın bir veya birden fazla kez bulunduğu ya da tekrar ettiği durumları temsil ediyor.

Örnek :

  • a+ => a, aa, aaaa, aaaaaaaa, aaaaaaaaaaa,
  • 1+ => 1, 11, 111111111, 1111111111, 11111111111111111, …
  • tut+um => tutum, tuttum, tuttttum
  • .+ => En az bir harf olmak kaydıyla bütün herşeyi kapsar : Ahmet-m?erHaba _123151 515 gibi.
  • [a-z]+ => En az bir harf olmak kaydıyla a-z harfleri arasındaki harflerden oluşan her şeyi kapsar.

* Yıldız Karakteri

Yıldız kendinden önceki karakterin sıfır veya daha fazla bulunduğu durumları temsil ediyor.

Örnek :

  • ka*n => kn , kan, kaan,
  • 9* => 9, 99, 9999, 999999,
  • ca*n => cn, can, caan, caaan,
  • ahmet* => ahme, ahmet, ahmett, ahmetttt, ahmetttttttt

? Soru İşareti Karakteri

Soru işareti kendinden önceki karakterin sıfır veya bir tane bulunduğu durumları temsil eder.

Örnek :

  • acık?lı => acılı, acıklı
  • patatesl?i => patatesi, patatesli
  • 132? => 1322, 132

() Kalıbı

Gruplama yapmak için kullanılır. Bu kalıp içinde veya | opereratörü kullanılabilir.

Örnek :

  • (ahmet|erşin) => ahmet, erşin
  • at (arabası|eyeri|dizgini|yuları) => at arabası, at eyeri, at dizgini, at yuları
  • (www|mail).google.com => mail.google.com, www.google.com

{} Kalıbı

Tekrar sayısı belirtmek için kullanılır, kendinden önceki karakter veya kalıp, grupların kaç defa tekrar edeceğini belirtir.

Tek parametreli ve iki parametreli kullanımı vardır. Tek parametreli kullanımda küme parantezlerinin içine tekrar sayısı yazılır.

Örnek :

  • bom{5} => bommmmm
  • (ahmet){2} => ahmetahmet
  • [a-z]{5} => 5 harfli a-z aralığında ki harflerden oluşan bütün kelimler => araba, meyve, sebze, tamam, saman, …

İki parametreli kullanımda; birinci parametre minimum tekrar sayısı, ikinci parametre ise maksimum tekrar sayısıdır. Kullanımı, {minimum, maksimum} şeklindedir.

Örnek :

  • tak{2,4} => takk, takkk, takkkk
  • 120{1,5} => 120, 1200, 12000, 120000, 1200000
  • (hop ){2,5} => hop hop,   hop hop hop,     hop hop hop hop,     hop hop hop hop hop
  • [a-z]{2,5} => 2, 3, 4 ve 5 harfli a,z aralığında ki harflerden oluşan bütün kelimler => ar, yar, kar, kara, kutu, kiti, çatı, çatal, …

^ Karakteri

Satır başını temsil eder. ^ Karakterinden sonra yazılan harf, grup veya kelime satır başındaysa eşleşme sağlanır.

^ tek başına kullanıldığında satır başındaki boşlukla eşleşir.

Örnek:

^tilkinin

tilkinin dönüğ dolaşıp geleceği yer kürkcü dükkanıdır

Burada “tilkinin” satır başında olduğun için eşleşme sağlanır fakat “tilkinin” satır başında olmasaydı eşleşme sağlanmazdı :

kürkü pek olan tilkinin avcısı çok olur

Not :  ^ karakterini kullanabilmek için ifadenin sonuna /m eklemek gerekiyor.

$ Karakteri

Satır sonunu temsil eder. $ karakterinden önce karakter, harf veya grup eklerseniz, sadece sondaysa eşleşir. Örneğin:

kalkar$

kartal kalkar dal sarkar, dal sarkar kartal kalkar

Şeklindeki kullanımda sadece sondaki “kalkar” ile eşleşir.

Eğer sondaki “kalkar” dan sonra herhangi bir karakter veya kelime olsaydı eşleşme sağlanmazdı.

$ Karakteri tek başına kullanılırsa da paragraf sonundaki boşlukla eşleşir.

Not :  $ karakterini kullanabilmek için ifadenin sonuna /m eklemek gerekiyor.

Etiketler

\b Etiketi

Kelimenin sınırlarını belirler, daha kısa ya da daha uzununu kabul etmez.

Örnek :

  • ara\b => Sadece ara ile eşleşir. araba ya da araç gibi kelimelerle eşleşmez aynı şekilde para, kara gibi kelimlerle de eşleşmez.
  • kil\b => Sadece kil ile eşleşir. Kiler ya da tekil gibi kelimelerle eşleşmez.

\B Etiketi

\B etiketi kendinden önceki kelimenin ya da ifadenin daha kısa ya da daha uzununu kabul eder fakat kendisini kabul etmez. Yani \b etikeninin tam tersidir.

Örnek :

 

  • ara\B => ara ile eşleşmez. araba ya da araç gibi kelimelerle eşleşir aynı şekilde para, kara gibi kelimlerle de eşleşir.
  • kil\B => kil ile eşleşmez. Kiler ya da tekil gibi kelimelerle eşleşir.

\d Etiketi

Herhangi bir rakamı temsil eder. [0-9] ile aynı sonucu verir.

Örnek :

  • 1\d => 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
  • 2\d2 => 202, 212, 222, 232, 242, 252, 262, 272, 282, 292

\D Etiketi

Rakam olmayan herhangi bir karakteri temsil eder. [^0-9] ile aynı sonucu verir. \d etiketinin tam tersidir.

\w Etiketi

Herhangi bir alfanümerik karakteri temsil eder. Türkçe karakterler dahil değildir, [a-zA-Z0-9_] ile aynı sonucu verir.

Örnek :

  • \w16 => f16, 216 ,516, _16, …

\W Etiketi

Alfanümerik olmayan herhangi bir karakteri temsil eder. \w etiketinin tam tersidir. [^a-zA-Z0-9_] ile aynı sonucu verir.

Ayar Etiketleri

Ayar etiketlerini kullanarak ifadelerin yorumlanış biçiminde değişiklikler yapmak mümkün. (Bu etiketlere ne denildiğini bilmediğim için ben ayar etiketi diyorum)

/g Etiketi

Çoğu dilde bu etiket varsayılan olarak aktiftir. Bir eşleşme sağlanıldıktan sonra da eşleşme aramaya devam etmesini sağlar. Bu etiket kapalıyken, oluşturduğunuz ifadeye uygun kaç tane kelime, harf ya da grup olursa olsun, sadece bir tanesiyle eşleşme sağlayacaktır.

/m Etiketi

Metini satır satır işleyerek $ ve ^ etiketlerinin kullanımına olanak sağlar.

/i Etiketi

Büyük küçük harf duyarlılığını iptal eder. Örneğin; [a-z] hem a ile z arasındaki küçük harfleri hem de a ile z arasındaki büyük harfleri kapsar.

 

 

 
 
 
 
  • alpia

    11 Ağustos 2015 13:38

    hmm düzgün yazmaya başlamışsınız aho bey umarım bu şekilde devam edersiniz

    Cevapla

Yorum Gönder

Bilgi : E-posta Adresin Sadece İletişim için, kimsecikler görmeyecek.