Kišenės pakeičiant reguliariaisiais išraiškomis PHP

Dirbant su funkcija preg_replace, jei mes ką nors įdėsime į kišenę reguliariojoje išraiškoje, tai pakeitimo eilutėje mes galime įterpti šios kišenės turinį parašę dolario ženką $ ir kišenės numerį. Pavyzdžiui, $0 - nulinė kišenė, $1 - pirmoji kišenė, $2 - antroji kišenė ir taip toliau.

Kam to reikia ir kaip tuo naudotis pažiūrėkime pavyzdžiais.

Pavyzdys

Suraskime visus skaičius ir vietoj jų įdėsime tuos pačius skaičius, bet riestiniuose skliaustuose. Tam visus rastus skaičius mes pakeisime jais pačiais, bet riestiniuose skliaustuose:

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

Rezultate į kintamąjį įrašysime tai:

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

Pavyzdys

Suraskime visas eilutes, kurios atvaizduoja save kaip skaičius su iksais aplink ir pakeiskime tuos skaičius jais pačiais, bet su '!' ženklais aplink:

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

Rezultate į kintamąjį įrašysime tai:

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

Pavyzdys

Išspręskime tokį uždavinį: duotos eilutės pavidalo 'aaa@bbb' - raidės, tada eta, tada raidės. Reikia sukeisti vietomis raides prieš '@' ir po. Realizuokime:

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

Rezultate į kintamąjį įrašysime tai:

php'bbb@aaa ddd@ccc'

Praktiniai uždaviniai

Задание 1

Duota eilutė:

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

Sukeiskite vietomis skaitmenis visuose dviženkliuose skaičiuose.

Задание 2

Duota eilutė su data:

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

Paverskite šią datą į '2025.12.31'.