Masalah Backslash dalam PHP
Backslash ialah aksara khas dalam PHP. Ini bermakna, dalam rentetan, jika kita mahu backslash mewakili dirinya sendiri, kita perlu menggandakannya:
<?php
$str = '\\ \\\\ \\\\\\'; // sebenarnya rentetan ialah '\ \\ \\\'
?>
Backslash juga merupakan aksara khas dalam ungkapan nalar (regex). Ini bermakna, di dalam ungkapan nalar, untuk backslash mewakili dirinya sendiri, ia perlu ditulis sebanyak empat kali:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // akan output '! ! !!'
?>
Sekarang mari kita tulis ungkapan nalar di mana
corak carian adalah seperti berikut: backslash
satu kali atau lebih. Dalam kes ini, kita
akan tulis operator + untuk 4
aksara di hadapannya tanpa pengelompokan:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // akan output '! ! !'
?>
Diberi rentetan:
<?php
$str = 'a\\b c\\d e\\f';
?>
Cari semua subrentetan dalam rentetan ini mengikut corak huruf, backslash, huruf.
Diberi rentetan:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Cari semua subrentetan dalam rentetan ini mengikut corak huruf, backslash sebarang bilangan kali, huruf.