Քարմաները 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' ձևաչափի: