Қавсҳои каҷ дар ибораҳои мунтазами PHP
Операторҳои +, *, ? хуб ҳастанд,
аммо бо ёрии онҳо наметавон миқдори муайяни такрорро
нишон дод. Дар ин ҳолат оператори {} ба ёрии
шумо меояд.
Он ба тариқи зерин кор мекунад: {5}
- панҷ такрор, {2,5} - аз ду то панҷ маротиба
(ҳарду ҳисоб) такрор мешавад, {2,}
- ду маротиба ва бештар такрор мешавад.
Намуна
Дар ин намуна нақшаи ҷустуҷӯ инҳоянд:
ҳарфи 'x', ҳарфи 'a' як
ё ду маротиба, ҳарфи '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'
аз чор маротиба бештар (ҳисоб) рӯй медиҳад.