JavaScript'te Düzenli İfadelere Giriş
Düzenli ifadeler, karmaşık arama ve değiştirme (veya sadece arama) için kullanılan komutlardır. Çok ilginç şeyler yapmanıza izin verirler, ancak ne yazık ki öğrenilmesi oldukça zordur.
Düzenli ifadelerle çalışmak için birkaç JavaScript metodu vardır. Biz bunlarla replace metodunu örnek alarak tanışmaya başlayacağız - bu metodu zaten biliyorsunuz: ilk parametresi neyin değiştirileceğini, ikinci parametresi ise neyle değiştirileceğini alır. Ve metodun kendisi, değişikliğin yapıldığı dizeye uygulanır:
'bab'.replace('a', '!'); // 'b!b' döndürür
Bu metodun ilk parametresine sadece bir dize değil, aynı zamanda bir düzenli ifade de iletebilirsiniz. Düzenli ifade, eğik çizgiler / içinde yer alan bir dizi komuttan oluşur. Bu eğik çizgilere düzenli ifadelerin sınırlayıcıları denir.
Düzenli ifadelerin kendileri iki tür karakterden oluşur: kendilerini temsil edenler ve özel karakterler olarak adlandırılan komut karakterleri.
Harf ve rakamlar kendilerini temsil eder. Aşağıdaki örnekte, bir düzenli ifade kullanarak 'a' harfini ! ile değiştireceğiz:
'bab'.replace(/a/, '!'); // 'b!b' döndürür
Ancak nokta özel bir karakterdir ve herhangi bir karakter anlamına gelir. Aşağıdaki örnekte, şu kalıba göre bir dize bulacağız: 'x' harfi, ardından herhangi bir karakter, sonra tekrar 'x' harfi:
'xax eee'.replace(/x.x/, '!'); // '! eee' döndürür
Sınırlayıcılardan sonra modifikatörler yazılabilir - bunlar düzenli ifadenin genel özelliklerini değiştiren komutlardır. Örneğin, g modifikatörü genel arama ve değiştirme modunu etkinleştirir - onsuz düzenli ifade sadece ilk eşleşmeyi bulur, onunla ise tüm eşleşmeleri bulur.
Aşağıdaki örnekte g modifikatörü belirtilmemiştir ve düzenli ifade sadece ilk eşleşmeyi bulacaktır:
'aab'.replace(/a/, '!'); // '!ab' döndürür
Ve şimdi düzenli ifade tüm eşleşmeleri bulacaktır:
'aab'.replace(/a/g, '!'); // '!!b' döndürür
Bir dize verildi:
let str = 'ahb acb aeb aeeb adcb axeb';
Şu kalıpla 'ahb', 'acb', 'aeb' dizelerini bulacak bir düzenli ifade yazın: 'a' harfi, herhangi bir karakter, 'b' harfi.
Bir dize verildi:
let str = 'aba aca aea abba adca abea';
Şu kalıpla 'abba', 'adca', 'abea' dizelerini bulacak bir düzenli ifade yazın: 'a' harfi, 2 herhangi karakter, 'a' harfi.
Bir dize verildi:
let str = 'aba aca aea abba adca abea';
'adca''yı yakalamadan, 'abba' ve 'abea' dizelerini bulacak bir düzenli ifade yazın.