JavaScript'te Düzenli İfadelerde Yakalama Grupları

Yakalama gruplarının içeriği yalnızca değiştirme dizesinde değil, aynı zamanda düzenli ifadenin kendisinde de erişilebilir: bir şeyi yakalama grubuna koyabiliriz, ardından doğrudan düzenli ifadede, burada bu yakalama grubunun içeriğinin olması gerektiğini söyleyebiliriz.

Yakalama gruplarının içeriği numaralarıyla erişilebilir, önlerinde ters eğik çizgi bulunur. Örneğin, ilk yakalama grubu şu şekilde erişilebilir: \1, ikinci yakalama grubu şu şekilde - \2, üçüncü - \3 ve böyle devam eder.

Yukarıda yazılanların hepsinin sizin için şu an oldukça belirsiz olduğuna eminim. Bu şaşırtıcı değil, çünkü yakalama grupları düzenli ifadelerin en az anlaşılan kısmıdır. Haydi örneklerle anlamaya çalışalım.

Örnek

Diyelim ki şöyle bir dizgimiz var:

javascriptlet str = 'aa bb cd ef';

İçinde ardışık olarak aynı iki harfin bulunduğu tüm yerleri bulalım. Problemi çözmek için herhangi bir harfi arayacağız, onu bir yakalama grubuna koyacağız, ardından bir sonraki karakterin bu yakalama grubunun içeriği olup olmadığını kontrol edeceğiz:

javascriptlet res = str.replace(/([a-z])\1/g, '!');

Sonuç olarak değişkene şunlar yazılacaktır:

javascript'! ! cd ef'

Örnek

Diyelim ki şöyle bir dizgimiz var:

javascriptlet str = 'asxca buzxb csgd';

İlk ve son harflerin aynı olduğu tüm kelimeleri bulalım. Problemi çözmek için şu kalıbı yazacağız: harf, ardından bir veya daha fazla harf, ve sonra ilk harfle aynı olan bir harf:

javascriptlet res = str.replace(/([a-z])[a-z]+\1/g, '!');

Sonuç olarak değişkene şunlar yazılacaktır:

javascript'! ! csgd'

Pratik Görevler

Задание 1

Bir dizgi verildi:

javascriptlet str = 'aaa bbb ccc xyz';

İçinde ardışık üç aynı harfin bulunduğu tüm alt dizgileri bulun.

Задание 2

Bir dizgi verildi:

javascriptlet str = 'a aa aaa aaaa aaaaa';

İçinde ardışık iki veya daha fazla aynı harfin bulunduğu tüm alt dizgileri bulun.

Задание 3

Bir dizgi verildi:

javascriptlet str = 'aaa aaa bbb bbb ccc ddd';

İçinde ardışık iki aynı kelimenin bulunduğu tüm alt dizgileri bulun.