Сетови на знаци во регуларните изрази во JavaScript

Групите на знаци \d и \w не се многу флексибилни. Дури и толку едноставна задача, како да се најдат сите букви, но не и бројки - не може да се реши со нив. За вакви задачи треба да се користат квадратни загради, кои претставуваат операција 'или'.

Квадратните загради заменуваат еден знак, кој било од наведените внатре. На пример, вака: /x[abc]x/ - ние велиме дека на краевите мора да стојат букви x, а внатре - еден знак: или 'a', или 'b', или 'c'.

После квадратните загради може да се пишуваат оператори за повторување. На пример, вака: /x[abc]+x/ - ние велиме дека внатре во x-овите може да има која било количина на знаци 'a', 'b' и 'c' - во кои било комбинации.

Може не само да се набројуваат знаци, туку да се создаваат групи на знаци, запишувајќи помеѓу два знака цртичка. На пример, вака: [a-d] - ги добиваме сите знаци од 'a' до 'd'.

Ајде да погледнеме на примери.

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било буква од 'a' до 'z':

javascriptlet str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било буква од 'a' до 'k':

javascriptlet str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! xmx x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било буква од 'A' до 'Z':

javascriptlet str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'xax ! xcx x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било цифра од 0 до 9:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'xax ! ! ! x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било цифра од 3 до 7:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'xax x1x ! ! x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било буква од 'a' до 'z' или цифра од 1 до 9:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! ! x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било буква од 'a' до 'z' или буква од 'A' до 'Z':

javascriptlet str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! x5x x@x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите која било буква од 'a' до 'z' или цифри 1, 2:

javascriptlet str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! ! x3x'

Пример

Во овој пример шаблонот за пребарување изгледа вака: помеѓу x-овите букви од 'a' до 'z' во количество од 1 и повеќе:

javascriptlet str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'xx ! ! ! x123x xa3x'

Пример

Ајде да направиме така што количеството на букви може да биде и нула:

javascriptlet str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');

Како резултат во променливата ќе се запише следново:

javascript'! ! ! ! x123x xa3x'

Практични задачи

Задание 1

Дадена е низа:

javascriptlet str = 'aba aea aca aza axa';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - буквата 'b', 'e' или 'x'.

Задание 2

Дадена е низа:

javascriptlet str = 'a1a a3a a7a a9a aba';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - цифра од 3-те до 6-те.

Задание 3

Дадена е низа:

javascriptlet str = 'aba aea afa aha aga';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - буква од a до g.

Задание 4

Дадена е низа:

javascriptlet str = 'aba aea afa aha aga';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - буква од a до f и од j до z.

Задание 5

Дадена е низа:

javascriptlet str = 'aAa aea aEa aJa a3a';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - буква од a до f и од A до D.

Задание 6

Дадена е низа:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - мали латински букви, без да ги допре останатите.

Задание 7

Дадена е низа:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - мали и големи латински букви, без да ги допре останатите.

Задание 8

Дадена е низа:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Напишете регуларен израз, кој ќе најде според следниот шаблон: на краевите стојат букви 'a', а помеѓу нив - мали латински букви и цифри, без да ги допре останатите.