Simboli i kapelës brenda grupeve në regex në PHP
Siç e dini, kapela brenda [] bën
negacion, kur shkruhet në fillim të kllapave.
Kjo do të thotë, ajo është një karakter special brenda
këtyre kllapave. Për të marrë kapelen si simbol,
duhet ose ta escape-oni atë, ose ta zhvendosni nga
vendi i parë.
Shembull
Në shembullin vijues modeli i kërkimit është:
karakteri i parë është gjithçka përveç 'd',
pastaj dy shkronja 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Si rezultat, në variabël do të shkruhet si vijon:
'! ! ! dxx'
Shembull
Tani modeli i kërkimit është: karakteri i parë
është 'd' ose '^', pastaj dy
shkronja 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Si rezultat, në variabël do të shkruhet si vijon:
'axx bxx ! !'
Shembull
Mund të mos e zhvendosni kapelen nga vendi i parë, por thjesht ta escape-oni atë duke përdorur backslash, dhe ajo do të simbolizojë vetë vetën:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Si rezultat, në variabël do të shkruhet si vijon:
'axx bxx ! !'
Detyra praktike
Jepet një string:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Shkruani një shprehje të rregullt, e cila do të gjejë stringjet sipas modelit: kapela ose simboli @, dhe më pas dy shkronja latine.
Jepet një string:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Shkruani një shprehje të rregullt, e cila do të gjejë stringjet sipas modelit: JO kapela dhe jo simboli @, dhe më pas dy shkronja latine.
Jepet një string:
<?php
$str = '^xx axx ^zz bkk';
?>
Shkruani një shprehje të rregullt, e cila do të gjejë stringjet sipas modelit: JO kapela, dhe më pas dy shkronja latine.