PHP Regular Ifodalarida Figurali Qavslar
+, *, ? operatorlari yaxshi,
ammo, ular yordamida takrorlanishlarning aniq
sonini ko‘rsatib bo‘lmaydi. Bu holda {}
operatori yordam beradi.
U quyidagicha ishlaydi: {5}
- besh marta takrorlanadi, {2,5} - ikki
beshgacha (ikkalasi ham o‘z ichiga olgan holda), {2,}
- ikki yoki undan ortiq marta takrorlanadi.
Misol
Ushbu misolda qidirsh shabloni quyidagicha:
'x' harfi, 'a' harfi bir
yoki ikki marta, 'x' harfi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagi yoziladi:
'xx ! ! xaaax'
Misol
Ushbu misolda qidirsh shabloni quyidagicha:
'x' harfi, 'a' harfi ikki
marta va undan ko‘p, 'x' harfi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagi yoziladi:
'xx xax ! !'
Misol
Ushbu misolda qidirsh shabloni quyidagicha:
'x' harfi, 'a' harfi uch
marta, 'x' harfi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagi yoziladi:
'xx xax xaax !'
Misol
Ushbu misolda qidirsh shabloni quyidagicha:
'a' harfi o‘n marta:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagi yoziladi:
'aaa ! aaa'
Misol
Ushbu misolda kod muallifi shunday shablon xohladi:
'x' harfi, 'a' harfi uch
marta va undan kam, 'x' harfi,
lekin, afsuski, bunday - {,3} -
ishlamaydi. Aniq ko‘rsatish kerak:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagi yoziladi:
'xx ! ! !'
Misol
Nol ham ruxsat etiladi:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
Natijada o‘zgaruvchiga quyidagi yoziladi:
'! ! ! !'
Amaliy Vazifalar
Berilgan satr:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'abba', 'abbba', 'abbbba'
va faqat ularni topadigan regular ifodani yozing.
Berilgan satr:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'aba' ko‘rinishidagi satrlarni topadigan regular ifodani yozing,
unda 'b' uch martadan kam (o‘z ichiga olgan holda) uchraydi.
Berilgan satr:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'aba' ko‘rinishidagi satrlarni topadigan regular ifodani yozing,
unda 'b' to‘rt martadan ko‘p (o‘z ichiga olgan holda) uchraydi.