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' түріне түрлендіріңіз.