myNotlar Logo

Düzenli İfadeler ve RegExp Nesnesi


Düzenli ifadeler, karakter dizilerini karşılaştırmak, ayırmak/bölmek, sıralamak ve biçimlendirmek gibi işlemler için kullanılan kurallı stenografik sistemlerdir. Bir RegExp (Regular Expression) nesnesi, bu gibi işlemler için kurallı bir ifadenin/deyimin kalıbını içererek karakter dizisi (string) içinde uygulanabilmesini sağlayan özelliklere ve metotlara sahiptir.

Düzenli ifade kalıplarında <HTML> etiketi veya support@mynotlar.com e-posta adresi ve benzeri birçok deyim için düzenli ifade kuralları tanımlayabilirsiniz. Örneğin support@mynotlar.com gibi bir e-posta adresinde temel olarak bir @ (at/echo) işareti ve bir . (nokta) olmak zorundadır. Bu kuralı aşağıdaki gibi gösterebiliriz.

 kelime1 @ kelime2 . kelime3

E-posta adresinin gösterimini basitçe tanımlayan bu kuralın düzenli ifadelerde stenografik gösterimi aşağıdaki gibi olacaktır.

  1. Bir kelime = \w+
  2. Sonra @ işareti = @
  3. Sonra bir kelime = \w+
  4. Sonra nokta = \.
  5. En son bir kelime = \w+

Sonuç : /\w+@\w+\.\w+/

Ve daha bir çok kural tanımlayabilirsiniz.

RegExp nesnesinin oluşturulması

Düzenli ifadeleri RegExp nesnesinin kurucu fonksiyonuyla veya stenografik gösterim ile aşağıdaki gibi tanımlayabilirsiniz.

Stenografik gösterimi:

/kalip/ayarlar

Kurucu fonksiyon ile:

new RegExp("kalip" [,"ayarlar"] )
  • kalip : Düzenli ifade metni. (Steno gösterim)
  • ayarlar : Eğer belirtildiyse aşağıdakilerden biri veya birkaçı
    • g : Global kontrol.
    • i : Büyük-küçük harf uyumunu atlar.
    • m : Metnin birden çok satıra sahip olduğunu ifade eder.

Stenografik gösterimde, karakter dizilerini belirtmek için tırnak işaretlerinin kullanılmadığına dikkat edin, tırnak işaretleri sadece kurucu fonksiyonda kullanılır. Aşağıdaki ifadelerin ikiside aynı düzenli ifade kurallarını tanımlar.

1. /ab+c/i
2. new RegExp("ab+c", "i")

 RegExp kurucu fonksiyon kullanılacağı zaman standart escape karakter kurallarına uyulması zorunludur. Örneğin, aşağıdaki gösterimlerin ikiside aynı kuralları tanımlar.

1. re = new RegExp("\\w+")
2. re = /\w+/

Escape Karakterler

 Escape Karakterler sadece düzenli ifadelerde değil bir çok programlama lisanında da özel anlama sahip olan ve genelde görüntülenemeyen karakterleri temsil etmek için kullanılırlar.

Özellikle unutulmaması gereken bir kural '\' ters bölü (backslash) karakterinin Escape karakterlerde özel bir anlamı olduğudur. '\' özel karakteri bir çok karakterin özel olup-olmadığını belirler. Örneğin '\\' ifadesi özel anlamı olmayan '\' ters bölü anlamına gelir veya düzenli ifadelerde özel bir anlama sahip '/' bölü özel karakterini '\/' şeklinde gösterebilirsiniz.

 RegExp nesnesi le kullanabileceğiniz escape karakterleri aşağıdaki tabloda gösterilmiştir.

KarakterAnlamı
\fFormFeed (FF)
\nYeni Satır (LF - LineFeed)
\rSatırbaşı (CR - Carriage return)
\tTab (HT)
\vDikey Tab (VT)
KarakterAnlamı
\xhhOnaltılık iki basamaklı 'hh' ile belirtilen karaktere denktir.
\uhhhhOnaltılık dört basamaklı 'hhhh' ile belirtilen unicode karaktere denktir.
\cX'X' yerine A-Z arası bir değer alarak "Control" karakteri tanımlar.

Karakter Türleri

Özel karakterler, düzenli ifadeleri oluştururken ifadeleri kısaltarak stenografik gösterim için kullanılırlar. Örneğin "\w" özel karakteri altçizgi dahil herhangi bir alfanümerik karaktere denktir. (_a-zA-Z0-9)

KarakterAnlamı
\d0-9 rakamlardan biri
\DRakam olmayan bir karakter
\sHerhangi bir boşluk karakteri
\SBoşluk olmayan bir karakter
\wAlt çizgi, rakamlar ve harflerden biri
\WAlt çizgi, rakam ve harf olmayan bir karakter
KarakterAnlamı
. nokta\n (yeni satır) hariç herhangi bir karakter
[abcd]abcd karakterlerinden biri
[^abcd]abcd'den biri olmayan bir karakter
[a-e]a-e arası bir karakter
x|yx veya y'den biri
()$1, $2 gibi değerlerle daha sonra kullanmak için içindekileri saklar.

Sınır Eşleşmeleri

Sınır eşleşmeleri özel karakterleri, düzenli ifadelerde bir karakter dizisi içinde bir kelime veya bir bölümün başlangıcı veya sonu gibi değerlerinin tanımlanmasını sağlar.

KarakterAnlamı
^Karakter dizisi başlangıcı
$Karakter dizisi sonu
\bKelime sınırı
\BKelime sınırı olmayan bir konum

Yineleme miktarları

Yineleme miktarı özel karakterleri, düzenli ifadelerde kendinden önce gelen özel karakterin veya ifadenin kaç defa tekrarlanacağını/tekrarlanma ihtimalini tanımlarlar.

KarakterAnlamı
*'0' sıfır veya daha fazla
+1 veya daha fazla
?'0' sıfır veya 1 kere
{x}Tam 'x' kere
{x,}En az 'x' kere
{x,y}En az 'x' en fazla 'y' kere

Fonksiyonlar ve Parametreler

Parametreler

RegExp nesnesinin özelliklerinin birkaçı kısa ve uzun isimlere sahiptir. Her iki isimde daima aynı değeri gösterir.

ÖzellikAçıklama
globalKarakter dizisinin tamamının kontrol edilip-edilmeyeceği.
ignoreCaseHarf hassasiyetinin olup olmadığı
multilineKarakter dizisinin çok satırlı olup-olmadığı.

Fonksiyonlar

MetodAçıklama
execAldığı karakter dizisi parametresi içinde eşleşmeyi uygular.
testAldığı karakter dizisi parametresini eşleşme için test eder.

Düzenli İfadeler ve RegExp Örnekleri

 
myNotlar Hakkında
Telif Hakkı © 2007-2009 mynotlar.com Tüm Hakları Saklıdır. Kopyalanamaz. Yayınlanamaz.
E-Posta : support@myNotlar.com

| Tek Kişilik Oyunlar | Sudoku | YasinKa |