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' төрт жолдон көп же барабар (камтылган)
учурат.