Bölüm 14
Regular Expression (Düzenli İfadeler)
Bir düzenli ifade, bir RegEx
(Regular Expression) nesnesi olarak oluşturulabilir veya bir öntanımlı değer olarak bir (/)
(forward slash) karakterleri ile bir desen içine yazılabilir. Düzenli ifade oluşturmak için kullanılan sözdizimleri aşağıda gösterilmiştir.
// using regular expression constructor
new RegExp(pattern[, flags]);
// using literals
/pattern/modifiers
Literaller kullanarak düzenli ifade oluşturmak için bayraklar isteğe bağlıdır. Yukarıda bahsedilen yöntemi kullanarak aynı düzenli ifadeyi oluşturmak için bir örnek aşağıda gösterilmiştir.
let re1 = new RegExp("xyz");
let re2 = /xyz/;
Her iki yol da bir regex nesnesi oluşturacak ve aynı yöntemlere ve özelliklere sahip olacaktır. Düzenli ifade oluşturmak için dinamik değerlere ihtiyaç duyabileceğimiz durumlar vardır, bu durumda literaller çalışmaz ve constructor'a gitmemiz gerekir.
Düzenli ifadenin bir parçası olmak için bir forward slash (/) kullanmak istediğimiz durumlarda, forward slash (/)
karakterini backslash (\)
ile kaçırmamız gerekir.
Durumlara duyarlı aramalar yapmak için kullanılan farklı değiştiriciler aşağıda listelenmiştir:
g
- global arama (ilk eşleşmeden sonra durmaz, tüm eşleşmeleri bulur)i
- duruma duyarlı aramam
- çok satırlı eşleme
Bir düzenli ifadede, bir dizi karakteri bulmak için Brackets (Köşeli Parantezler) kullanılır. Bazıları aşağıda listelenmiştir.
[abc]
- brackets arasında herhangi bir karakter bul[^abc]
- brackets arasında olmayan bir karakter bul[0-9]
- brackets arasında herhangi bir rakam bul[^0-9]
- brackets arasında olmayan herhangi bir karakter bul (sayılar dışında)(x|y)
- | ile ayrılmış alternatiflerden herhangi birini bul
Düzenli ifadede özel bir anlama sahip olan Metacharacters (özel karakterlerdir). Bu karakterler aşağıda daha ayrıntılı olarak açıklanmıştır:
Metacharacter | Description |
---|---|
. |
Bir karakter hariç yeni satır veya bir sonlandırıcı eşleştirir |
\w |
Alfanumerik karakter ([a-zA-Z0–9_] ) eşleştirir |
\W |
[^a-zA-Z0–9_] ile aynı olan bir non word karakteri eşleştirir |
\d |
[0-9] ile aynı olan herhangi bir rakam karakterini eşleştirir |
\D |
Sayısal olmayan herhangi bir karakterle eşleşir |
\s |
Bir boşluk karakteriyle eşleştirme (boşluklar, sekmeler vb.) |
\S |
Boşluk olmayan bir karakterle eşleştirme |
\b |
Bir kelimenin başında / sonunda eşleştirir |
\B |
Match but not at the begining / end of a word |
\0 |
NULL karakterini eşleştirir |
\n |
Yeni bir satır karakterini eşleştirir |
\f |
Form feed karakterini eşleştirir |
\r |
Carriage return karakterini eşleştirir |
\t |
Tab karakterini eşleştirir |
\v |
Tab vertical karakterini eşleştirir |
\xxx |
Bir octal sayı ile belirtilen karakteri eşleştirir (ex:xxx ) |
\xdd |
Bir hexadecimal sayı ile belirtilen karakteri eşleştirir dd |
\udddd |
Bir hexadecimal sayı ile belirtilen Unicode karakterini eşleştirir dddd |
RegEx tarafından desteklenen özellikler ve yöntemler aşağıda listelenmiştir.
Name | Description |
---|---|
constructor |
RegExp nesnesinin protipini oluşturan fonksiyonu döndürür |
global |
g düzenleyicisinin ayarlı olup olmadığını kontrol eder |
ignoreCase |
i düzenleyicisinin ayarlanıp ayarlanmadığını kontrol eder |
lastIndex |
Bir sonraki eşleşmenin başlatılacağı dizini belirtir |
multiline |
m düzenleyicisinin ayarlı olup olmadığını kontrol eder |
source |
Dizenin metnini döndürür |
exec() |
Eşleşmeyi test eder ve ilk eşleşmeyi döndürür, eşleşme yoksa null döndürür |
test() |
Eşleşmeyi test eder ve true veya false döndürür |
toString() |
Düzenli ifadenin dize değerini döndürür |
Bir complie()
yöntemi düzenli ifadeyi uyumlu hale getirir ve kullanımdan kaldırılmıştır.
Düzenli ifadelerin (regular expressions ) bazı örnekleri burada gösterilmektedir.
let text = "The best things in life are free";
let result = /e/.exec(text); // looks for a match of e in a string
// result: e
let helloWorldText = "Hello world!";
// Look for "Hello"
let pattern1 = /Hello/g;
let result1 = pattern1.test(helloWorldText);
// result1: true
let pattern1String = pattern1.toString();
// pattern1String : '/Hello/g'