Masalah Backslash di PHP
Backslash adalah karakter khusus di PHP. Ini berarti bahwa dalam sebuah string, jika kita ingin backslash mewakili dirinya sendiri, kita harus menggandakannya:
<?php
$str = '\\ \\\\ \\\\\\'; // sebenarnya string adalah '\ \\ \\\'
?>
Backslash juga merupakan karakter khusus dalam regex. Ini berarti bahwa di dalam regex, agar backslash mewakili dirinya sendiri, perlu ditulis hingga empat kali:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // akan menampilkan '! ! !!'
?>
Sekarang mari kita tulis regex yang
pola pencariannya adalah: backslash
satu kali atau lebih. Dalam kasus seperti itu, kita
akan menulis operator + untuk 4
karakter di depannya tanpa pengelompokan:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // akan menampilkan '! ! !'
?>
Diberikan string:
<?php
$str = 'a\\b c\\d e\\f';
?>
Temukan semua substring dalam string ini sesuai pola huruf, backslash, huruf.
Diberikan string:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Temukan semua substring dalam string ini sesuai pola huruf, backslash dalam jumlah berapapun, huruf.