⊗jsSpREEP 129 of 294 menu

Zsebek a reguláris kifejezésben JavaScriptben

A zsebek tartalma nem csak a helyettesítő karakterláncban érhető el, hanem magában a reguláris kifejezésben is: berakhatunk valamit egy zsebbe, majd egyből a reguláris kifejezésben megadhatjuk, hogy itt ennek a zsebnek a tartalmának kell állnia.

A zsebek tartalma a sorszámaik alapján érhető el, amelyek elé fordított perjel kerül. Például, az első zseb így érhető el: \1, a második zseb így - \2, a harmadik - \3 és így tovább.

Biztos vagyok benne, hogy minden fent írt még nagyon homályos számotokra. Ez nem meglepő, hiszen a zsebek a reguláris kifejezések legkevésbé érthető részei. Nézzünk példákat a megértés érdekében.

Példa

Tegyük fel, hogy van egy ilyen karakterláncunk:

let str = 'aa bb cd ef';

Keressük meg benne az összes helyet, ahol bármelyik két egyforma betű áll egymás után. A feladat megoldásához keressünk bármelyik betűt, tegyük egy zsebbe, majd ellenőrizzük, hogy a következő karakter ezen zseb tartalma-e:

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

Ennek eredményeképpen a változóba a következő íródik:

'! ! cd ef'

Példa

Tegyük fel, hogy van egy ilyen karakterláncunk:

let str = 'asxca buzxb csgd';

Keressük meg benne az összes szót, amelyekben az első és az utolsó betű megegyezik. A feladat megoldásához írjuk meg a következő mintát: betű, majd még egy vagy több betű, és végül ugyanaz a betű, mint az első:

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

Ennek eredményeképpen a változóba a következő íródik:

'! ! csgd'

Gyakorlati feladatok

Adott egy karakterlánc:

let str = 'aaa bbb ccc xyz';

Keresse meg az összes részkarakterláncot, ahol három ugyanolyan betű áll egymás után.

Adott egy karakterlánc:

let str = 'a aa aaa aaaa aaaaa';

Keresse meg az összes részkarakterláncot, ahol két vagy több ugyanolyan betű áll egymás után.

Adott egy karakterlánc:

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

Keresse meg az összes részkarakterláncot, ahol két ugyanolyan szó áll egymás után.

ruhyrodabn