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
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
Rezultate į kintamąjį įrašysime tai:
'{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
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
Rezultate į kintamąjį įrašysime tai:
'!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
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
Rezultate į kintamąjį įrašysime tai:
'bbb@aaa ddd@ccc'
Praktiniai uždaviniai
Duota eilutė:
<?php
$str = '12 34 56 78';
?>
Sukeiskite vietomis skaitmenis visuose dviženkliuose skaičiuose.
Duota eilutė su data:
<?php
$str = '31.12.2025';
?>
Paverskite šią datą į '2025.12.31'.