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<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[^d]xx#', '!', $str);
?>

Si rezultat, në variabël do të shkruhet si vijon:

php'! ! ! dxx'

Shembull

Tani modeli i kërkimit është: karakteri i parë është 'd' ose '^', pastaj dy shkronja 'x':

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[d^]xx#', '!', $str);
?>

Si rezultat, në variabël do të shkruhet si vijon:

php'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<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[\^d]xx#', '!', $str);
?>

Si rezultat, në variabël do të shkruhet si vijon:

php'axx bxx ! !'

Detyra praktike

Задание 1

Jepet një string:

php<?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.

Задание 2

Jepet një string:

php<?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.

Задание 3

Jepet një string:

php<?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.