Vitičaste zagrade u regularnim izrazima PHP

Operatorima +, *, ? je dobro, međutim, pomoću njih se ne može navesti tačan broj ponavljanja. U ovom slučaju će vam u pomoć doći operator {}.

Radi na sledeći način: {5} - pet ponavljanja, {2,5} - ponavlja se od dva do pet (oba uključujući), {2,} - ponavlja se dva i više puta.

Primer

U ovom primeru šablon pretrage izgleda ovako: slovo 'x', slovo 'a' jedan ili dva puta, slovo 'x':

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

Kao rezultat u promenljivu će biti upisano sledeće:

php'xx ! ! xaaax'

Primer

U ovom primeru šablon pretrage izgleda ovako: slovo 'x', slovo 'a' dva puta i više, slovo 'x':

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

Kao rezultat u promenljivu će biti upisano sledeće:

php'xx xax ! !'

Primer

U ovom primeru šablon pretrage izgleda ovako: slovo 'x', slovo 'a' tri puta, slovo 'x':

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

Kao rezultat u promenljivu će biti upisano sledeće:

php'xx xax xaax !'

Primer

U ovom primeru šablon pretrage izgleda ovako: slovo 'a' deset puta:

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

Kao rezultat u promenljivu će biti upisano sledeće:

php'aaa ! aaa'

Primer

U ovom primeru je autor koda želeo ovakav šablon: slovo 'x', slovo 'a' tri puta puta i manje, slovo 'x', ali, nažalost, ovo - {,3} - ne radi. Potrebno je navesti eksplicitno:

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

Kao rezultat u promenljivu će biti upisano sledeće:

php'xx ! ! !'

Primer

Nula je takođe dozvoljena:

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

Kao rezultat u promenljivu će biti upisano sledeće:

php'! ! ! !'

Praktični zadaci

Задание 1

Data je niska:

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

Napišite regularni izraz koji će pronaći niske 'abba', 'abbba', 'abbbba' i samo njih.

Задание 2

Data je niska:

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

Napišite regularni izraz koji će pronaći niske tipa 'aba', u kojima se 'b' pojavljuje manje od tri puta (uključujući).

Задание 3

Data je niska:

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

Napišite regularni izraz koji će pronaći niske tipa 'aba', u kojima se 'b' pojavljuje više od četiri puta (uključujući).