Poket dalam Penggantian Menggunakan Ungkapan Biasa di PHP
Apabila bekerja dengan fungsi preg_replace,
jika kita meletakkan sesuatu ke dalam poket dalam ungkapan biasa,
maka dalam rentetan penggantian kita boleh memasukkan kandungan
poket tersebut dengan menulis tanda dolar $ dan nombor
poket. Sebagai contoh, $0 - poket sifar,
$1 - poket pertama, $2 - poket kedua
dan seterusnya.
Mari kita lihat contoh untuk memahami kegunaan dan cara penggunaannya.
Contoh
Mari cari semua nombor dan gantikannya dengan nombor yang sama, tetapi dalam kurungan kerawang. Untuk melakukan ini, semua nombor yang ditemui akan digantikan dengan nombor itu sendiri, tetapi dalam kurungan kerawang:
<?php
$str = '1 23 456 xax';
$res = preg_replace('#(\d+)#', '{$1}', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'{1} {23} {456} xax'
Contoh
Mari cari semua rentetan yang mewakili
nombor dengan 'x' di sekelilingnya dan gantikan
nombor tersebut dengan nombor yang sama, tetapi dengan tanda '!' di sekeliling:
<?php
$str = 'x1x x23x x456x xax';
$res = preg_replace('#x(\d+)x#', '!$1!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'!1! !23! !456! xax'
Contoh
Mari selesaikan masalah berikut: diberikan rentetan
berbentuk 'aaa@bbb' - huruf, kemudian simbol @,
kemudian huruf. Perlu menukar tempat huruf
sebelum '@' dan selepas. Mari laksanakan:
<?php
$str = 'aaa@bbb ccc@ddd';
$res = preg_replace('#([a-z]+)@([a-z]+)#', '$2@$1', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'bbb@aaa ddd@ccc'
Tugas Praktikal
Diberi rentetan:
<?php
$str = '12 34 56 78';
?>
Tukar tempat digit dalam semua nombor dua digit.
Diberi rentetan dengan tarikh:
<?php
$str = '31.12.2025';
?>
Tukar tarikh ini kepada format '2025.12.31'.