Komanda 'ose' në shprehjet e rregullta të PHP
Në këtë mësim do të shqyrtojmë komandën
|, e cila përfaqëson një version
më të fuqishëm të OSE në krahasim me
komandën []. Kjo komandë lejon
ndarjen e shprehjes së rregullt në disa pjesë.
Në këtë rast, ajo që kërkohet mund të përputhet
ose me një pjesë të shprehjes së rregullt, ose
me një tjetër. Le t'i shohim shembujt.
Shembull
Në këtë shembull, modeli i kërkimit është: tre
shkronja 'a' ose tre shkronja 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! abb'
Shembull
Në këtë shembull, modeli i kërkimit është: tre
shkronja 'a' ose nga 1 e më shumë
shkronja 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! ! ! axx'
Shembull
Në këtë shembull, modeli i kërkimit është: një ose më shumë shkronja ose tre shifra:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! ! 1 12 !'
Shembull
Vija vertikale mund ta ndajë shprehjen e rregullt jo në dy pjesë, por në çdo numër pjesësh:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! ! ddd'
Shembull
Nëse vija vertikale ndodhet brenda kllapave të rrumbullakëta,
atëherë 'ose' funksionon vetëm brenda
atyre kllapave. Për shembull, le të gjejmë stringjet
sipas modelit të mëposhtëm: në fillim qëndron
ose 'a', ose 'b' një ose më shumë
herë, e më pas dy shkronja 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! ! exx'
Detyra praktike
Është dhënë stringu:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Shkruani një shprehje të rregullt, e cila do të gjejë stringjet
sipas modelit: në anët qëndrojnë shkronjat 'a',
dhe midis tyre - ose shkronja 'e' çdo
numër herësh ose shkronja 'x' çdo
numër herësh.
Është dhënë stringu:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Shkruani një shprehje të rregullt, e cila do të gjejë stringjet
sipas modelit: në anët qëndrojnë shkronjat 'a',
dhe midis tyre - ose shkronja 'e' dy herë
ose shkronja 'x' çdo numër herësh.