Групы сімвалаў у рэгулярных выразах 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';
Напішыце рэгулярку, якая замяніць усе прабелы
на '!'
.