АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗jsSpREChG 102 of 294 menu

Групы сімвалаў у рэгулярных выразах JavaScript

Існуюць спецыяльныя каманды, якія дазваляюць выбраць адразу цэлыя групы сімвалаў. Каманда \d азначае лічбу ад 0 да 9. Каманда \w абазначае лічбу, лацінскую літару ці знак падкрэслівання. Каманда \s абазначае прабел ці прабельны сімвал: прабел, перавод радка, табуляцыю. Можна інвертаваць значэнне каманды, напісаўшы вялікую літару: напрыклад, калі \d - лічба, то \D - не лічба.

Прыклад

Давайце знойдзем усе лічбы:

let str = '1 12 123'; let res = str.replace(/\d/g, '!');

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

'! !! !!!'

Прыклад

Аператары паўтарэння лічаць каманды-групы адным цэлым, гэта значыць згрупоўваючыя дужкі не патрэбныя. У наступным прыкладзе шаблон пошуку выглядае так: лічба ад 0 да 9 адзін ці больш разоў:

let str = '1 12 123 abc @@@'; let res = str.replace(/\d+/g, '!');

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

'! ! ! abc @@@'

Прыклад

У наступным прыкладзе шаблон пошуку выглядае так: усё што заўгодна адзін ці больш разоў, але не лічба ад 0 да 9:

let str = '123abc3@@'; let res = str.replace(/\D+/g, '!');

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

'123!3!'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: прабельны сімвал адзін раз:

let str = '1 12 123 abc @@@'; let res = str.replace(/\s/g, '!');

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

'1!12!123!abc!@@@'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: НЕ прабельны сімвал адзін ці больш разоў. Усе падрадкі, падзеленыя прабеламі, заменяцца на '!':

let str = '1 12 123 abc @@@'; let res = str.replace(/\S+/g, '!');

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

'! ! ! ! !'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: лічба ці літара адзін ці больш разоў. Усе падрадкі, якія складаюцца з лічбаў і літар, заменяцца на '!':

let str = '1 12 123a Abc @@@'; let res = str.replace(/\w+/g, '!');

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

'! ! ! ! @@@'

Прыклад

У даным прыкладзе шаблон пошуку выглядае так: НЕ лічба і НЕ літара адзін ці больш разоў. Па дадзенае вызначэнне ў нашым выпадку трапляе '@@@' і ўсе прабелы (яны ж таксама не лічбы і не літары). Звярніце ўвагу на тое, што ў канцы адзін '!' - у яго ператварылася радок ' @@@' - з прабелам наперадзе:

let str = '1 12 123 Abc @@@'; let res = str.replace(/\W+/g, '!');

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

'1!12!123!Abc!'

Практычныя задачы

Дадзены радок:

let str = 'a1a a2a a3a a4a a5a aba aca';

Напішыце рэгулярку, якая знойдзе радкі, у якіх па краях стаяць літары 'a', а паміж імі адна лічба.

Дадзены радок:

let str = 'a1a a22a a333a a4444a a55555a aba aca';

Напішыце рэгулярку, якая знойдзе радкі, у якіх па краях стаяць літары 'a', а паміж імі любая колькасць лічбаў.

Дадзены радок:

let str = 'aa a1a a22a a333a a4444a a55555a aba aca';

Напішыце рэгулярку, якая знойдзе радкі, у якіх па краях стаяць літары 'a', а паміж імі любая колькасць лічбаў (у тым ліку і нуль лічбаў, гэта значыць радок 'aa').

Дадзены радок:

let str = 'avb a1b a2b a3b a4b a5b abb acb';

Напішыце рэгулярку, якая знойдзе радкі наступнага выгляду: па краях стаяць літары 'a' і 'b', а паміж імі - не лік і не прабел.

Дадзены радок:

let str = 'ave a#b a2b a$b a4b a5b a-b acb';

Напішыце рэгулярку, якая знойдзе радкі наступнага выгляду: па краях стаяць літары 'a' і 'b', а паміж імі - не літара, не лічба і не прабел.

Дадзены радок:

let str = 'ave a#a a2a a$a a4a a5a a-a aca';

Напішыце рэгулярку, якая замяніць усе прабелы на '!'.

byenru