Оператори за повторение на символи
Има ситуации, в които искаме да укажем,
че символ се повтаря зададен брой пъти.
Ако знаем точния брой повторения,
можем просто да го напишем няколко пъти
- /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'.