PHP'деги регулярдуу сөз айкашында курчалуу жаатчалар

Операторлор +, *, ? жакшы, бирок, алардын жардамы менен так кайталоо санын көрсөтүү мүмкүн эмес. Бул учурда сизге оператор {} жардам берет.

Ал төмөнкүчө иштейт: {5} - беш кайталоо, {2,5} - экиден бешке чейин (экөө тең камтылган) кайталанат, {2,} - эки жана андан көп жолу кайталанат.

Мисал

Бул мисалда издөө үлгүсү төмөнкүдөй көрүнөт: 'x' тамгасы, 'a' тамгасы бир же эки жолу, 'x' тамгасы:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,2}x#', '!', $str);
?>

Натыйжада өзгөрмөгө төмөнкү жазылат:

php'xx ! ! xaaax'

Мисал

Бул мисалда издөө үлгүсү төмөнкүдөй көрүнөт: 'x' тамгасы, 'a' тамгасы эки жолу жана андан көп, 'x' тамгасы:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{2,}x#', '!', $str);
?>

Натыйжада өзгөрмөгө төмөнкү жазылат:

php'xx xax ! !'

Мисал

Бул мисалда издөө үлгүсү төмөнкүдөй көрүнөт: 'x' тамгасы, 'a' тамгасы үч жолу, 'x' тамгасы:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{3}x#', '!', $str);
?>

Натыйжада өзгөрмөгө төмөнкү жазылат:

php'xx xax xaax !'

Мисал

Бул мисалда издөө үлгүсү төмөнкүдөй көрүнөт: 'a' тамгасы он жолу:

php<?php
  $str = 'aaa aaaaaaaaaa aaa';
  $res = preg_replace('#a{10}#', '!', $str);
?>

Натыйжада өзгөрмөгө төмөнкү жазылат:

php'aaa ! aaa'

Мисал

Бул мисалда коддун автору мындай үлгүнү каалаган: 'x' тамгасы, 'a' тамгасы үч жолудан кем же барабар, 'x' тамгасы, бирок, тилекке каршы, мындай - {,3} - иштей албайт. Ачык көрсөтүү керек:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,3}x#', '!', $str);
?>

Натыйжада өзгөрмөгө төмөнкү жазылат:

php'xx ! ! !'

Мисал

Нөл дагы уруксат этелген:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{0,3}x#', '!', $str);
?>

Натыйжада өзгөрмөгө төмөнкү жазылат:

php'! ! ! !'

Практикалык тапшырмалар

Задание 1

Белгиленген сап:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Төмөнкү саптарды гана таба турган регулярдуу сөз айкашын жазыңыз: 'abba', 'abbba', 'abbbba'.

Задание 2

Белгиленген сап:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Төмөнкү үлгүдөгү саптарды таба турган регулярдуу сөз айкашын жазыңыз: 'aba', анда 'b' үч жолдон кем же барабар (камтылган) учурат.

Задание 3

Белгиленген сап:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Төмөнкү үлгүдөгү саптарды таба турган регулярдуу сөз айкашын жазыңыз: 'aba', анда 'b' төрт жолдон көп же барабар (камтылган) учурат.