Muntazam ifodalarda belgi takrorlash operatorlari
Vaziyatlar bo'ladi, biz belgining ma'lum bir miqdorda
takrorlanishini ko'rsatmoqchi bo'lamiz.
Agar biz takrorlanishlarning aniq sonini bilsak,
unda uni bir necha marta yozishimiz mumkin
- #aaaa#. Lekin agar biz shunday demoqchi bo'lsak: bir yoki bir necha marta
takrorla?
Buning uchun (kvantifikatorlar)
takrorlash operatorlari mavjud: plus + (bir yoki bir necha marta),
yulduzcha * (nol yoki bir necha marta) va
savol ? (nol yoki bir marta). Bu
operatorlar o'zlarining oldida turgan
belgiga ta'sir qiladi.
Keling, ushbu operatorlarning ishlashini misollar orqali ko'rib chiqaylik.
Misol
harf 'x', 'a' harfi bir yoki bir necha
marta, 'x' harf naqshiga mos keladigan barcha pastki satrlarni topamiz:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'xx ! ! ! xbx'
Misol
harf 'x', 'a' harfi nol yoki bir necha
marta, 'x' harf naqshiga mos keladigan barcha pastki satrlarni topamiz:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ! xbx'
Misol
harf 'x', 'a' harfi nol yoki bir
marta, 'x' harf naqshiga mos keladigan barcha pastki satrlarni topamiz:
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! xaax xbx'
Amaliy vazifalar
Berilgan satr:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Quyidagi naqshga mos keladigan satrlarni topadigan
muntazam ifodani yozing: 'a' harfi, 'b' harfi
bir yoki bir necha marta, 'a' harfi.
Berilgan satr:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Quyidagi naqshga mos keladigan satrlarni topadigan
muntazam ifodani yozing: 'a' harfi, 'b' harfi
nol yoki bir necha marta, 'a' harfi.
Berilgan satr:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Quyidagi naqshga mos keladigan satrlarni topadigan
muntazam ifodani yozing: 'a' harfi, 'b' harfi
bir marta yoki hech qachon, 'a' harfi.
Berilgan satr:
<?php
$str = 'aa aba abba abbba abca abea';
?>
'aa', 'aba', 'abba',
'abbba' satrlarini topadigan, 'abca'
va 'abea' ni olmaydigan muntazam ifodani yozing.