Големи загради во регуларните изрази во 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' се среќава
повеќе од четири пати (вклучително).