Наборы сімвалаў у рэгулярных выразах JavaScript

Групы сімвалаў \d і \w не вельмі гібкія. Нават такая простая задача, як знайсці ўсе літары, але не лічбы - не можа быць вырашана імі. Для такіх задач след выкарыстоўваць квадратныя дужкі, якія прадстаўляюць сабой аперацыю 'ці'.

Квадратныя дужкі замяняюць сабой адзін сімвал, любы з пералічаных усярэдзіне. Напрыклад, вось так: /x[abc]x/ - мы кажам, што па краях павінны стаяць літары ікс, а ўсярэдзіне - адзін сімвал: ці 'a', ці 'b', ці 'c'.

Пасля квадратных дужак можна пісаць аператары паўтарэння. Напрыклад, вось так: /x[abc]+x/ - мы кажам, што ўсярэдзіне іксаў можа быць любая колькасць сімвалаў 'a', 'b' і 'c' - у любых камбінацыях.

Можна не толькі пералічваць сімвалы, але ствараць групы сімвалаў, запісваючы паміж двума сімваламі злучок. Напрыклад, вось так: [a-d] - мы атрымліваем усе сімвалы ад 'a' да 'd'.

Давайце паглядзім на прыкладах.

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі любая літара ад 'a' да 'z':

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

У выніку ў зменную запішацца наступнае:

javascript'! ! ! x@x'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі любая літара ад 'a' да 'k':

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

У выніку ў зменную запішацца наступнае:

javascript'! ! xmx 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'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі любая лічба ад 0 да 9:

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

У выніку ў зменную запішацца наступнае:

javascript'xax ! ! ! 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'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі любая літара ад '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'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі любая літара ад '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'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі любая літара ад 'a' да 'z' ці лічбы 1, 2:

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

У выніку ў зменную запішацца наступнае:

javascript'! ! ! ! x3x'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: паміж іксамі літары ад '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', а паміж імі - маленькія лацінскія літары і лічбы, не зачапіўшы астатніх.