Komanda 'ili' u regularnim izrazima PHP
U ovoj lekciji ćemo razmotriti komandu
|, koja predstavlja moćniju
verziju ILI u poređenju sa
komandom []. Ova komanda omogućava
podelu regularnog izraza na nekoliko delova.
Pritom traženi tekst može odgovarati bilo jednom
delu regularnog izraza, bilo drugom. Hajde da
pogledamo na primerima.
Primer
U ovom primeru šablon pretrage je: tri
slova 'a' ili tri slova 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! abb'
Primer
U ovom primeru šablon pretrage je: tri
slova 'a' ili od 1 i više
slova 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! ! axx'
Primer
U ovom primeru šablon pretrage je: jedno ili više slova ili tri cifre:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! 1 12 !'
Primer
Vertikalna crta može podeliti regularni izraz ne na dva dela, već na bilo koji broj delova:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! ddd'
Primer
Ako se vertikalna crta nalazi unutar okruglih
zagrada, onda 'ili' radi samo unutar
tih zagrada. Za primer, hajde da pronađemo niske
po sledećem šablonu: na početku se nalazi
ili 'a', ili 'b' jedan ili više
puta, a zatim dva slova 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! exx'
Praktični zadaci
Data je niska:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Napišite regularni izraz koji će pronaći niske
po šablonu: sa krajeva se nalaze slova 'a',
a između njih - ili slovo 'e' bilo koji
broj puta ili slovo 'x' bilo koji
broj puta.
Data je niska:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Napišite regularni izraz koji će pronaći niske
po šablonu: sa krajeva se nalaze slova 'a',
a između njih - ili slovo 'e' dva puta
ili slovo 'x' bilo koji broj puta.