Аператары паўтарэння знакаў
Бываюць сітуацыі, калі мы хочам паказаць,
што знак паўтараецца зададзеную колькасць
разоў. Калі мы ведаем дакладную колькасць паўторванняў,
то можна проста напісаць яго некалькі разоў
- /aaaa/
. Але што рабіць, калі мы хочам
сказаць такое: паўтарыць адзін ці больш
разоў?
Для гэтага існуюць аператары (квантыфікатары)
паўтарэння: плюс +
(адзін ці больш разоў),
зоркачка *
(нуль ці больш разоў) і
пытанне ?
(нуль ці адзін раз). Гэтыя
аператары дзейнічаюць на той знак, які
стаіць перад імі.
Давайце паглядзім на працу гэтых аператараў на прыкладах.
Прыклад
Знайдзем усе падрадкі па шаблоне літара
'x'
, літара 'a'
адзін ці больш
разоў, літара 'x'
:
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
У выніку ў зменную запішацца наступнае:
'xx ! ! ! xbx'
Прыклад
Знайдзем усе падрадкі па шаблоне літара
'x'
, літара 'a'
нуль ці больш
разоў, літара 'x'
:
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
У выніку ў зменную запішацца наступнае:
'! ! ! ! xbx'
Прыклад
Знайдзем усе падрадкі па шаблоне літара
'x'
, літара 'a'
нуль ці адзін
раз, літара 'x'
:
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
У выніку ў зменную запішацца наступнае:
'! ! xaax xbx'
Практычныя задачы
Дадзены радок:
let str = 'aa aba abba abbba abca abea';
Напішыце рэгулярку, якая знойдзе радкі
'aba'
, 'abba'
, 'abbba'
па шаблоне: літара 'a'
, літара 'b'
любую колькасць разоў, літара 'a'
.
Дадзены радок:
let str = 'aa aba abba abbba abca abea';
Напішыце рэгулярку, якая знойдзе радкі
'aa'
, 'aba'
, 'abba'
,
'abbba'
па шаблоне: літара 'a'
,
літара 'b'
любую колькасць разоў (у
тым ліку ніводнага разу), літара 'a'
.
Дадзены радок:
let str = 'aa aba abba abbba abca abea';
Напішыце рэгулярку, якая знойдзе радкі
'aa'
, 'aba'
па шаблоне: літара
'a'
, літара 'b'
адзін раз ці
ніводнага, літара 'a'
.
Дадзены радок:
let str = 'aa aba abba abbba abca abea';
Напішыце рэгулярку, якая знойдзе радкі
'aa'
, 'aba'
, 'abba'
,
'abbba'
, не захапіўшы 'abca'
і 'abea'
.