Фігурныя дужкі ў рэгулярных выразах JavaScript
Аператары '+', '*', '?'
добрыя, аднак, з іх дапамогай нельга паказаць
канкрэтную колькасць паўтораў. У гэтым выпадку
вам на дапамогу прыйдзе аператар {}.
Працуе ён наступным чынам: {5}
- пяць паўтораў, {2,5} – паўтараецца
ад двух да пяці (абодва ўключна), {2,}
- паўтараецца два і больш разоў. Звярніце ўвагу
на тое, што такога варыянта - {,2}
- няма. Паглядзіце прыклады:
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае так:
літара 'x', літара 'a' адзін
ці два разы, літара 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
У выніку ў зменную запішацца наступнае:
'xx ! ! xaaax'
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае так:
літара 'x', літара 'a' два
разы і больш, літара 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
У выніку ў зменную запішацца наступнае:
'xx xax ! !'
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае так:
літара 'x', літара 'a' тры
разы, літара 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
У выніку ў зменную запішацца наступнае:
'xx xax xaax !'
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае так:
літара 'a' дзесяць разоў:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
У выніку ў зменную запішацца наступнае:
'aaa ! aaa'
Прыклад
У гэтым прыкладзе аўтар кода хацеў такі шаблон:
літара 'x', літара 'a' тры
разы разы і менш, літара 'x',
але, на жаль, такое - {,3} - не працуе.
Трэба паказаць явна:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
У выніку ў зменную запішацца наступнае:
'xx ! ! !'
Прыклад
Нуль таксама дапушчальны:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
У выніку ў зменную запішацца наступнае:
'! ! ! !'
Практычныя задачы
Дадзены радок:
let str = 'aa aba abba abbba abbbba abbbbba';
Напішыце рэгулярку, якая знойдзе радкі
'abba', 'abbba', 'abbbba'
і толькі іх.
Дадзены радок:
let str = 'aa aba abba abbba abbbba abbbbba';
Напішыце рэгулярку, якая знойдзе радкі
выгляду 'aba', у якіх 'b' сустракаецца
менш за 3 разы (ўключна).
Дадзены радок:
let str = 'aa aba abba abbba abbbba abbbbba';
Напішыце рэгулярку, якая знойдзе радкі
выгляду 'aba', у якіх 'b' сустракаецца
больш за 4 разы (ўключна).