Operator za ponavljanje znakova u regularnim izrazima
Dešavaju se situacije kada želimo da naznačimo
da se znak ponavlja određeni broj
puta. Ako znamo tačan broj ponavljanja,
možemo ga jednostavno napisati više puta
- #aaaa#. Ali šta da radimo ako želimo
da kažemo ovo: ponovi se jedan ili više
puta?
Za ovo postoje operatori (kvantifikatori)
ponavljanja: plus + (jedan ili više puta),
zvezdica * (nula ili više puta) i
upitnik ? (nula ili jedan put). Ovi
operatori deluju na onaj znak koji
stoji ispred njih.
Pogledajmo kako ovi operatori rade na primerima.
Primer
Pronađimo sve podstringove po šablonu slovo
'x', slovo 'a' jedan ili više
puta, slovo 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'xx ! ! ! xbx'
Primer
Pronađimo sve podstringove po šablonu slovo
'x', slovo 'a' nula ili više
puta, slovo 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! ! xbx'
Primer
Pronađimo sve podstringove po šablonu slovo
'x', slovo 'a' nula ili jedan
put, slovo 'x':
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! xaax xbx'
Praktični zadaci
Data je sledeća string:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Napišite regularni izraz koji će pronaći stringove
po šablonu: slovo 'a', slovo 'b'
jedan ili više puta, slovo 'a'.
Data je sledeća string:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Napišite regularni izraz koji će pronaći stringove
po šablonu: slovo 'a', slovo 'b'
nula ili više puta, slovo 'a'.
Data je sledeća string:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Napišite regularni izraz koji će pronaći stringove
po šablonu: slovo 'a', slovo 'b'
jedan put ili nijedan, slovo 'a'.
Data je sledeća string:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Napišite regularni izraz koji će pronaći stringove
'aa', 'aba', 'abba',
'abbba', a da ne uhvati 'abca'
i 'abea'.