Kablys simbolis reguliariosiose išraiškose PHP rinkiniuose
Kaip žinote, kablys [] viduje
sukuria neigimą, jei parašytas skliaustų
pradžioje.
Tai reiškia, kad jis yra specialus simbolis
šių skliaustų viduje. Norint gauti kablį kaip simbolį,
reikia arba jį ekranuoti, arba perkelti iš
pirmosios pozicijos.
Pavyzdys
Šiame pavyzdyje paieškos šablonas yra toks:
pirmasis simbolis - viskas, išskyrus 'd',
po to dvi raidės 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Dėl to į kintamąjį bus įrašyta tai:
'! ! ! dxx'
Pavyzdys
O dabar paieškos šablonas yra toks: pirmasis simbolis
- yra 'd' arba '^', po to dvi
raidės 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Dėl to į kintamąjį bus įrašyta tai:
'axx bxx ! !'
Pavyzdys
Galima neperkelti kablio iš pirmosios pozicijos, o tiesiog jį ekranuoti naudojant atvirkštinį brūkšnį, ir jis reikš save patį:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Dėl to į kintamąjį bus įrašyta tai:
'axx bxx ! !'
Praktinės užduotys
Duota eilutė:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Parašykite reguliariąją išraišką, kuri ras eilutes pagal šabloną: kablys arba eta, o po to dvi lotyniškos raidės.
Duota eilutė:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Parašykite reguliariąją išraišką, kuri ras eilutes pagal šabloną: NE kablys ir ne eta, o po to dvi lotyniškos raidės.
Duota eilutė:
<?php
$str = '^xx axx ^zz bkk';
?>
Parašykite reguliariąją išraišką, kuri ras eilutes pagal šabloną: NE kablys, o po to dvi lotyniškos raidės.