Ukaz 'ali' v regularnih izrazih PHP
V tej lekciji bomo razstavili ukaz
|, ki predstavlja bolj
močno različico ALI v primerjavi z
ukazom []. Ta ukaz omogoča
razdelitev regularnega izraza na več delov.
Pri tem lahko iskani niz ustreza bodisi enemu
delu regularnega izraza bodisi drugemu. Poglejmo
si primere.
Primer
V tem primeru je vzorec iskanja takšen: tri
črke 'a' ali tri črke 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! abb'
Primer
V tem primeru je vzorec iskanja takšen: tri
črke 'a' ali od 1 in več
črk 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! ! axx'
Primer
V tem primeru je vzorec iskanja takšen: ena ali več črk ali tri številke:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! 1 12 !'
Primer
Navpična črta lahko razdeli regularni izraz ne na dva dela, temveč na poljubno število delov:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! ddd'
Primer
Če je navpična črta znotraj okroglih
oklepajev, potem 'ali' deluje samo znotraj
teh oklepajev. Za primer poiščimo nize
po naslednjem vzorcu: na začetku stoji
ali 'a', ali 'b' enkrat ali večkrat,
in nato dve črki 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! exx'
Praktične naloge
Podan je niz:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Napišite regularni izraz, ki bo našel nize
po vzorcu: ob robih stojijo črke 'a',
in med njimi - ali črka 'e' poljubno
število krat ali črka 'x' poljubno
število krat.
Podan je niz:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Napišite regularni izraz, ki bo našel nize
po vzorcu: ob robih stojijo črke 'a',
in med njimi - ali črka 'e' dvakrat
ali črka 'x' poljubno število krat.