⊗jsSpREEP 129 of 294 menu

Групи в самата регулярка в JavaScript

Съдържанието на групите е достъпно не само в низа за замяна, но и в самата регулярка: ние можем да поставим нещо в група, а след това директно в регулярката да кажем, че тук трябва да стои съдържанието на тази група.

Съдържанието на групите е достъпно по техните номера, пред които има обратна наклонена черта. Например, първата група ще бъде достъпна ето така: \1, втората група ето така - \2, третата - \3 и така нататък.

Убеден съм, че всичко написано по-горе все още е доста неясно за вас. Това не е изненадващо, тъй като групите са най-малко разбираемото място в регулярните изрази. Нека да разгледаме примери.

Пример

Нека имаме следния низ:

let str = 'aa bb cd ef';

Нека намерим в него всички места, в които има две еднакви букви една след друга. За решаване на задачата ще търсим произволна буква, ще я поставяме в група, а след това ще проверяваме дали следващият символ е съдържанието на тази група:

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

В резултат в променливата ще се запише следното:

'! ! cd ef'

Пример

Нека имаме следния низ:

let str = 'asxca buzxb csgd';

Нека намерим в него всички думи, в които първата и последната буква са еднакви. За решаване на задачата ще напишем следния шаблон: буква, следвана от още една или повече букви, а след това същата буква като първата:

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

В резултат в променливата ще се запише следното:

'! ! csgd'

Практически задачи

Даден е низ:

let str = 'aaa bbb ccc xyz';

Намерете всички поднизове, в които има три еднакви букви една след друга.

Даден е низ:

let str = 'a aa aaa aaaa aaaaa';

Намерете всички поднизове, в които има две или повече еднакви букви една след друга.

Даден е низ:

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

Намерете всички поднизове, в които има две еднакви думи една след друга.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне