Операторҳои такроршавии аломатҳо
Вактеҳо пеш меояд, ки мо мехоҳем ишора кунем,
ки аломат маълум шумора такрор мешавад.
Агар мо шумораи дақиқи такрорро медонем,
пас танҳо метавонем онро чанд маротиба нависем
- /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';
Regular Expression нависед, ки сатрҳои
'aba', 'abba', 'abbba'
ро бо намунаи: ҳарфи 'a', ҳарфи 'b'
ҳар қадар маротиба, ҳарфи 'a' пайдо кунад.
Сатр дода шудааст:
let str = 'aa aba abba abbba abca abea';
Regular Expression нависед, ки сатрҳои
'aa', 'aba', 'abba',
'abbba'-ро бо намунаи: ҳарфи 'a',
ҳарфи 'b' ҳар қадар маротиба (ҳатто
як маротиба ҳам набуда), ҳарфи 'a' пайдо кунад.
Сатр дода шудааст:
let str = 'aa aba abba abbba abca abea';
Regular Expression нависед, ки сатрҳои
'aa', 'aba'-ро бо намунаи: ҳарф
'a', ҳарфи 'b' як маротиба ё
ҳеҷ, ҳарфи 'a' пайдо кунад.
Сатр дода шудааст:
let str = 'aa aba abba abbba abca abea';
Regular Expression нависед, ки сатрҳои
'aa', 'aba', 'abba',
'abbba'-ро пайдо кунад, 'abca'
ва 'abea'-ро гирифта нашавад.