PHP mунтазам ифодаларидаги кайри ёйиқ қавслар
+, *, ? операторлари яхши,
аммо, улар ёрдамида такрорланишнинг аниқ сонини
кўрсатиб бўлмайди. Бундай ҳолатда сизга {}
оператори ёрдамга келади.
У quyidagicha ишлайди: {5}
- беш марта такрорланиш, {2,5} - иккидан
бешгача (иккаласи ҳам ўзига киритилган) такрорланади,
{2,} - икки ва ундан кўп марта такрорланади.
Мисол
Ушбу мисолда қидируш намунаси куйидагича кўринишда:
'x' ҳарфи, 'a' ҳарфи бир
yoki икки марта, 'x' ҳарфи:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
Натижада ўзгарувчига куйидагилар ёзилади:
'xx ! ! xaaax'
Мисол
Ушбу мисолда қидируш намунаси куйидагича кўринишда:
'x' ҳарфи, 'a' ҳарфи икки
марта ва ундан кўп, 'x' ҳарфи:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
Натижада ўзгарувчига куйидагилар ёзилади:
'xx xax ! !'
Мисол
Ушбу мисолда қидируш намунаси куйидагича кўринишда:
'x' ҳарфи, 'a' ҳарфи уч
марта, 'x' ҳарфи:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
Натижада ўзгарувчига куйидагилар ёзилади:
'xx xax xaax !'
Мисол
Ушбу мисолда қидируш намунаси куйидагича кўринишда:
'a' ҳарфи ўн марта:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
Натижада ўзгарувчига куйидагилар ёзилади:
'aaa ! aaa'
Мисол
Ушбу мисолда код муаллифи куйидаги намунани хохлаган:
'x' ҳарфи, 'a' ҳарфи уч
марта ва ундан кам, 'x' ҳарфи,
аммо, афсуски, бундай - {,3} -
ишламайди. Аниқ кўрсатиш керак:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
Натижада ўзгарувчига куйидагилар ёзилади:
'xx ! ! !'
Мисол
Нол ҳам рухсат этилган:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! ! !'
Амалий машқлар
Берилган сатр:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'abba', 'abbba', 'abbbba'
ва фақат уларни топадиган мунтазам ифодани ёзинг.
Берилган сатр:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'aba' курокидаги, ичида 'b' уч марта
ва ундан кам (ўзи кирадиган) учрайдиган сатрларни топадиган мунтазам ифодани ёзинг.
Берилган сатр:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
'aba' курокидаги, ичида 'b' тўрт марта
ва ундан кўп (ўзи кирадиган) учрайдиган сатрларни топадиган мунтазам ифодани ёзинг.