⊗jsSpREEP 129 of 294 menu

Nawiasy przechwytujące w samym wyrażeniu regularnym w JavaScript

Zawartość nawiasów przechwytujących jest dostępna nie tylko w łańcuchu zastępowania, ale także w samym wyrażeniu regularnym: możemy umieścić coś w nawiasie przechwytującym, a następnie bezpośrednio w wyrażeniu regularnym powiedzieć, że tutaj musi znajdować się zawartość tego nawiasu.

Zawartość nawiasów przechwytujących jest dostępna po ich numerach, przed którymi stoi odwrócony ukośnik. Na przykład, pierwszy nawias przechwytujący będzie dostępny w ten sposób: \1, drugi nawias w ten sposób - \2, trzeci - \3 i tak dalej.

Jestem pewien, że wszystko napisane powyżej jest dla was na razie dość niejasne. To nie zaskakujące, ponieważ nawiasy przechwytujące to najbardziej niezrozumiałe miejsce w wyrażeniach regularnych. Rozpracujmy to na przykładach.

Przykład

Załóżmy, że mamy taki łańcuch:

let str = 'aa bb cd ef';

Znajdźmy w nim wszystkie miejsca, w których stoją dwie dowolne identyczne litery pod rząd. Aby rozwiązać zadanie, będziemy szukać dowolnej litery, umieszczać ją w nawiasie przechwytującym, a następnie sprawdzać, czy następnym symbolem jest zawartość tego nawiasu:

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! ! cd ef'

Przykład

Załóżmy, że mamy taki łańcuch:

let str = 'asxca buzxb csgd';

Znajdźmy w nim wszystkie słowa, w których pierwsza i ostatnia litera są identyczne. Aby rozwiązać zadanie, napiszemy następujący wzorzec: litera, następnie jeszcze jedna lub więcej liter, a następnie taka sama litera jak pierwsza:

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! ! csgd'

Zadania praktyczne

Dany jest łańcuch:

let str = 'aaa bbb ccc xyz';

Znajdź wszystkie podłańcuchy, w których występują trzy identyczne litery pod rząd.

Dany jest łańcuch:

let str = 'a aa aaa aaaa aaaaa';

Znajdź wszystkie podłańcuchy, w których występują dwie lub więcej identycznych liter pod rząd.

Dany jest łańcuch:

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

Znajdź wszystkie podłańcuchy, w których występują dwa identyczne słowa pod rząd.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć