Xhepat në zëvendësim përmes regex në PHP

Gjatë punës me funksionin preg_replace, nëse vendosim diçka në xhepin në regex, atëherë në vargun e zëvendësimit mund të fusim përmbajtjen e këtij xhepi duke shkruar shenjën e dollarit $ dhe numrin e xhepit. Për shembull, $0 - xhepi zero, $1 - xhepi i parë, $2 - xhepi i dytë e kështu me radhë.

Për çfarë është e nevojshme kjo dhe si ta përdorim le ta shohim me shembuj.

Shembull

Le të gjejmë të gjithë numrat dhe në vend të tyre të fusim të njëjtët numra, por në kllapa kaçurrelë. Për këtë të gjithë numrat e gjetur do t'i zëvendësojmë me ata vetë, por në kllapa kaçurrelë:

php<?php
  $str = '1 23 456 xax';
  $res = preg_replace('#(\d+)#', '{$1}', $str);
?>

Si rezultat në ndryshoren do të shkruhet si më poshtë:

php'{1} {23} {456} xax'

Shembull

Le të gjejmë të gjithë vargjet që përfaqësojnë numra me ikse rreth e qark dhe t'i zëvendësojmë këta numra me ata vetë, por me shenja '!' përreth:

php<?php
  $str = 'x1x x23x x456x xax';
  $res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>

Si rezultat në ndryshoren do të shkruhet si më poshtë:

php'!1! !23! !456! xax'

Shembull

Le të zgjidhim problemin e mëposhtëm: jepen vargjet të formës 'aaa@bbb' - shkronja, pastaj shenja @, pastaj shkronja. Duhet të ndërrohen vendet shkronjat përpara '@' dhe pas. Le ta realizojmë:

php<?php
  $str = 'aaa@bbb ccc@ddd';
  $res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>

Si rezultat në ndryshoren do të shkruhet si më poshtë:

php'bbb@aaa ddd@ccc'

Detyra praktike

Задание 1

Është dhënë vargu:

php<?php
  $str = '12 34 56 78';
?>

Ndrroni vendet e shifrave në të gjithë numrat dyshifrorë.

Задание 2

Është dhënë vargu me datë:

php<?php
  $str = '31.12.2025';
?>

Shndërrojeni këtë datë në '2025.12.31'.