Белгилерди кайталоо операторлору
Белги белгилүү бир жолу кайталанганын көрсөтүүнү каалай турган учурлар болот.
Эгерде биз так кайталоо санын билсек,
анда аны бир нече жолу жөн гана жаза алабыз
- #aaaa#. Бирок, эгерде биз мындай дегибиз келсе: бир же бир нече жолу кайтала?
Бул үчүн (квантификаторлор)
кайталоо операторлору бар: плюс + (бир же бир нече жолу),
жылдызча * (нөл же бир нече жолу) жана
суроо белгиси ? (нөл же бир жолу). Бул
операторлор алардын алдында турган белгиге таасир этет.
Келгиле, бул операторлордун иштешин мисалдар аркылуу карап көрөлү.
Мисал
'x' тамгасы,
'a' тамгасы бир же бир нече жолу,
'x' тамгасы үлгүсү боюнча бардык подстрокаларды табалы:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Натыйжада өзгөрмөгө төмөнкү жазылат:
'xx ! ! ! xbx'
Мисал
'x' тамгасы,
'a' тамгасы нөл же бир нече жолу,
'x' тамгасы үлгүсү боюнча бардык подстрокаларды табалы:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Натыйжада өзгөрмөгө төмөнкү жазылат:
'! ! ! ! xbx'
Мисал
'x' тамгасы,
'a' тамгасы нөл же бир жолу,
'x' тамгасы үлгүсү боюнча бардык подстрокаларды табалы:
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Натыйжада өзгөрмөгө төмөнкү жазылат:
'! ! xaax xbx'
Практикалык тапшырмалар
Төмөнкү сап берилген:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Төмөнкү үлгү боюнча саптарды таба турган регулярдуу сөз айкашын жазыңыз:
'a' тамгасы, 'b' тамгасы
бир же бир нече жолу, 'a' тамгасы.
Төмөнкү сап берилген:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Төмөнкү үлгү боюнча саптарды таба турган регулярдуу сөз айкашын жазыңыз:
'a' тамгасы, 'b' тамгасы
нөл же бир нече жолу, 'a' тамгасы.
Төмөнкү сап берилген:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Төмөнкү үлгү боюнча саптарды таба турган регулярдуу сөз айкашын жазыңыз:
'a' тамгасы, 'b' тамгасы
бир жолу же эч качан, 'a' тамгасы.
Төмөнкү сап берилген:
<?php
$str = 'aa aba abba abbba abca abea';
?>
'abca'
жана 'abea''тарды камтыбай туруп, 'aa', 'aba', 'abba',
'abbba' саптарын таба турган регулярдуу сөз айкашын жазыңыз.