Komanda 'arba' reguliariųjų išraiškų PHP
Šioje pamokoje išnagrinėsime komandą
|, kuri yra galingesnė
ARBA variacija, palyginti su
komanda []. Ši komanda leidžia
padalinti reguliariąją išraišką į kelias dalis.
Tuomet ieškomas atitikmuo gali tenkinti vieną
regulariosios išraiškos dalį arba kitą. Pažiūrėkime
su pavyzdžiais.
Pavyzdys
Šiame pavyzdyje paieškos šablonas yra toks: trys
raidės 'a' arba trys raidės 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Rezultate į kintamąjį bus įrašyta tai:
'! ! abb'
Pavyzdys
Šiame pavyzdyje paieškos šablonas yra toks: trys
raidės 'a' arba nuo 1 ir daugiau
raidžių 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Rezultate į kintamąjį bus įrašyta tai:
'! ! ! ! axx'
Pavyzdys
Šiame pavyzdyje paieškos šablonas yra toks: viena arba daugiau raidžių arba trys skaitmenys:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Rezultate į kintamąjį bus įrašyta tai:
'! ! ! 1 12 !'
Pavyzdys
Vertikali linija gali padalinti reguliariąją išraišką ne į dvi dalis, o į bet kokį skaičių dalių:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Rezultate į kintamąjį bus įrašyta tai:
'! ! ! ddd'
Pavyzdys
Jei vertikali linija yra roundiniuose skliaustuose,
tai 'arba' veikia tik tuose skliaustuose.
Pavyzdžiui, suraskime eilutes pagal šį šabloną: pradžioje yra
arba 'a', arba 'b' vieną ar daugiau
kartų, o po to dvi raidės 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Rezultate į kintamąjį bus įrašyta tai:
'! ! ! exx'
Praktinės užduotys
Duota eilutė:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Parašykite reguliariąją išraišką, kuri ras eilutes
pagal šabloną: kraštuose yra raidės 'a',
o tarp jų - arba raidė 'e' bet kokį
skaičių kartų arba raidė 'x' bet kokį
skaičių kartų.
Duota eilutė:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Parašykite reguliariąją išraišką, kuri ras eilutes
pagal šabloną: kraštuose yra raidės 'a',
o tarp jų - arba raidė 'e' du kartus
arba raidė 'x' bet kokį skaičių kartų.