Belgilarni takrorlash operatorlari
Vaziyatlar bo‘ladi, biz belgi berilgan miqdorda
takrorlanishini ko‘rsatmoqchi bo‘lamiz.
Agar takrorlanishlarning aniq sonini bilsak,
uni bir necha marta yozishimiz mumkin
- /aaaa/. Lekin agar shunday deyishni istasak
nima qilish kerak: bir yoki bir necha marta takrorlash?
Buning uchun takrorlash operatorlari
(kvantifikatorlar) mavjud: plus + (bir yoki bir necha marta),
yulduzcha * (nol yoki bir necha marta) va
savol ? (nol yoki bir marta). Bu
operatorlar oldida turgan belgiga ta'sir qiladi.
Keling, bu operatorlarning ishlashini misollar orqali ko‘rib chiqaylik.
Misol
harf
'x', 'a' harfi bir yoki bir necha
marta, 'x' harfi andozasiga mos keladigan barcha pastki satrlarni topamiz:
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'xx ! ! ! xbx'
Misol
harf
'x', 'a' harfi nol yoki bir necha
marta, 'x' harfi andozasiga mos keladigan barcha pastki satrlarni topamiz:
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! ! ! xbx'
Misol
harf
'x', 'a' harfi nol yoki bir
marta, 'x' harfi andozasiga mos keladigan barcha pastki satrlarni topamiz:
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Natijada o‘zgaruvchiga quyidagilar yoziladi:
'! ! xaax xbx'
Amaliy vazifalar
Berilgan satr:
let str = 'aa aba abba abbba abca abea';
'aba', 'abba', 'abbba'
satrlarini topadigan oddiy ifodani yozing:
'a' harfi, 'b' harfi
har qanday miqdorda, 'a' harfi.
Berilgan satr:
let str = 'aa aba abba abbba abca abea';
'aa', 'aba', 'abba',
'abbba' satrlarini topadigan oddiy ifodani yozing:
'a' harfi,
'b' harfi har qanday miqdorda (shu
jumladan hech qachon), 'a' harfi.
Berilgan satr:
let str = 'aa aba abba abbba abca abea';
'aa', 'aba' satrlarini topadigan oddiy ifodani yozing:
'a' harfi,
'b' harfi bir marta yoki
hech qachon, 'a' harfi.
Berilgan satr:
let str = 'aa aba abba abbba abca abea';
'aa', 'aba', 'abba',
'abbba' satrlarini topadigan, 'abca'
va 'abea' ni olmaydigan oddiy ifodani yozing.