ჯიბეები რეგულარული გამონათქვამებით ჩანაცვლებისას PHP-ში
preg_replace ფუნქციასთან მუშაობისას,
თუ რეგულარულ გამონათქვამში რაიმეს ჯიბეში მოვათავსებთ,
ჩანაცვლების სტრიქონში ჩვენ შეგვიძლია ჩავსვათ ამ
ჯიბის შიგთავსი დოლარის ნიშნის $ და ჯიბის ნომრის მითითებით.
მაგალითად, $0 - ნულოვანი ჯიბე,
$1 - პირველი ჯიბე, $2 - მეორე
ჯიბე და ასე შემდეგ.
ეს რისთვისაა საჭირო და როგორ გამოვიყენოთ მოდით ვნახოთ მაგალითებზე.
მაგალითი
მოდით ვიპოვოთ ყველა რიცხვი და მათ ნაცვლად ჩავსვათ იგივე რიცხვები, მაგრამ ხვეული ფრჩხილებში. ამისთვის ყველა ნაპოვნი რიცხვი ჩავანაცვლებთ თავის თავზე, მაგრამ ხვეული ფრჩხილებში:
<?php
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'{1} {23} {456} xax'
მაგალითი
მოდით ვიპოვოთ ყველა სტრიქონი, რომელიც
წარმოადგენს რიცხვებს იქსებით გარშემორტყმულს და ჩავანაცვლოთ ეს
რიცხვები თავის თავზე, მაგრამ '!' ნიშნებით გარშემორტყმულს:
<?php
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'!1! !23! !456! xax'
მაგალითი
მოდით მოვაგვაროთ შემდეგი ამოცანა: მოცემულია სტრიქონები
ვიდ 'aaa@bbb' - ასოები, შემდეგ @ სიმბოლო,
შემდეგ ასოები. საჭიროა გაცვალოთ ადგილები ასოებს
'@'-მდე და მის შემდეგ. რეალიზაცია:
<?php
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
შედეგად ცვლადში ჩაიწერება შემდეგი:
'bbb@aaa ddd@ccc'
პრაქტიკული ამოცანები
მოცემულია სტრიქონი:
<?php
$str = '12 34 56 78';
?>
გაცვალეთ ადგილები ციფრები ყველა ორნიშნა რიცხვში.
მოცემულია სტრიქონი თარიღით:
<?php
$str = '31.12.2025';
?>
გადააკეთეთ ეს თარიღი '2025.12.31' ფორმატში.