Քարմաները PHP-ում կանոնավոր արտահայտություններով փոխարինելիս

preg_replace ֆունկցիայի հետ աշխատելիս, եթե մենք ինչ-որ բան դնենք քարմանի մեջ կանոնավոր արտահայտության մեջ, ապա փոխարինման տողում մենք կարող ենք տեղադրել այդ քարմանի պարունակությունը՝ գրելով դոլարի նշան $ և քարմանի համարը: Օրինակ, $0 - զրոյական քարման, $1 - առաջին քարման, $2 - երկրորդ քարման և այլն:

Ինչու է դա անհրաժեշտ և ինչպես օգտագործել այն, եկեք նայենք օրինակներով:

Օրինակ

Եկեք գտնենք բոլոր թվերը և դրանց փոխարեն տեղադրենք նույն թվերը, բայց գանգուր փակագծերում: Դրա համար բոլոր գտնված թվերը մենք կփոխարինենք իրենցով, բայց գանգուր փակագծերում.

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

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

Օրինակ

Եկեք գտնենք բոլոր տողերը, որոնք ներկայացնում են թվեր՝ շրջապատված իքսերով և փոխարինենք այդ թվերը իրենցով, բայց '!' նշաններով շրջապատված.

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

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

Օրինակ

Եկեք լուծենք հետևյալ խնդիրը. տրված են 'aaa@bbb' տեսքի տողեր - տառեր, ապա շնիկ, ապա տառեր: Պետք է տեղերով փոխել '@'-ից առաջ և հետո գտնվող տառերը: Կիրականացնենք.

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

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը.

php'bbb@aaa ddd@ccc'

Գործնական առաջադրանքներ

Задание 1

Տրված է տող.

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

Փոխարինեք բոլոր երկնիշ թվերի թվանշանների տեղերը:

Задание 2

Տրված է ամսաթիվ պարունակող տող.

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

Փոխակերպեք այս ամսաթիվը '2025.12.31' ձևաչափի: