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
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
Kao rezultat u promenljivu će biti upisano sledeće:
'xx ! ! xaaax'
Primer
U ovom primeru šablon pretrage izgleda ovako:
slovo 'x', slovo 'a' dva
puta i više, slovo 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
Kao rezultat u promenljivu će biti upisano sledeće:
'xx xax ! !'
Primer
U ovom primeru šablon pretrage izgleda ovako:
slovo 'x', slovo 'a' tri
puta, slovo 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
Kao rezultat u promenljivu će biti upisano sledeće:
'xx xax xaax !'
Primer
U ovom primeru šablon pretrage izgleda ovako:
slovo 'a' deset puta:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
Kao rezultat u promenljivu će biti upisano sledeće:
'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
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
Kao rezultat u promenljivu će biti upisano sledeće:
'xx ! ! !'
Primer
Nula je takođe dozvoljena:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
Kao rezultat u promenljivu će biti upisano sledeće:
'! ! ! !'
Praktični zadaci
Data je niska:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Napišite regularni izraz koji će pronaći niske
'abba', 'abbba', 'abbbba'
i samo njih.
Data je niska:
<?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).
Data je niska:
<?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).