PHPda regular almashinuvlar orqali cho'ntaklar
preg_replace funksiyasi bilan ishlaganda,
agar biz regular ifodada biror narsani cho'ntakka qo'ysak,
unda almashtirish satrida biz ushbu cho'ntakning
mazmunini dollar belgisi $ va cho'ntak raqamini
yozish orqali kiritishimiz mumkin. Masalan, $0 - nolinchi cho'ntak,
$1 - birinchi cho'ntak, $2 - ikkinchi
cho'ntak va hokazo.
Bu nima uchun kerak va bundan qanday foydalanishni misolarda ko'rib chiqaylik.
Misol
Keling, barcha raqamlarni topamiz va ularning o'rniga o'sha raqamlarni, lekin jingalak qavs ichiga qo'yamiz. Buning uchun topilgan barcha raqamlarni biz o'zlari bilan, lekin jingalak qavs ichida almashtiramiz:
<?php
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
Natijada o'zgaruvchiga quyidagi yoziladi:
'{1} {23} {456} xax'
Misol
Keling, atrofida ikslar bo'lgan
raqamlarni ifodalovchi barcha satrlarni topamiz
va bu raqamlarni o'zlari bilan, lekin '!' belgilari atrofida almashtiramiz:
<?php
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
Natijada o'zgaruvchiga quyidagi yoziladi:
'!1! !23! !456! xax'
Misol
Keling, quyidagi masalani yechaylik: 'aaa@bbb' ko'rinishidagi satrlar berilgan
- harflar, keyin kuchukcha,
keyin harflar. '@' dan oldingi va keyingi harflarni
o'rnini almashtirish kerak. Amalga oshiramiz:
<?php
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
Natijada o'zgaruvchiga quyidagi yoziladi:
'bbb@aaa ddd@ccc'
Amaliy vazifalar
Satr berilgan:
<?php
$str = '12 34 56 78';
?>
Barcha ikki xonali raqamlardagi raqamlarni o'rnini almashtiring.
Sana bilan satr berilgan:
<?php
$str = '31.12.2025';
?>
Ushbu sanani '2025.12.31' ko'rinishiga o'zgartiring.