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