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

Natijada o'zgaruvchiga quyidagi yoziladi:

php'{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<?php
  $str = 'x1x x23x x456x xax';
  $res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>

Natijada o'zgaruvchiga quyidagi yoziladi:

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

Natijada o'zgaruvchiga quyidagi yoziladi:

php'bbb@aaa ddd@ccc'

Amaliy vazifalar

Задание 1

Satr berilgan:

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

Barcha ikki xonali raqamlardagi raqamlarni o'rnini almashtiring.

Задание 2

Sana bilan satr berilgan:

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

Ushbu sanani '2025.12.31' ko'rinishiga o'zgartiring.