Die Probleem van die Backslash in PHP
Die backslash is 'n spesiale karakter in PHP. Dit beteken dat in 'n string, as ons wil hê die slash moet homself verteenwoordig, ons dit moet verdubbel:
<?php
$str = '\\ \\\\ \\\\\\'; // eintlik is die string '\ \\ \\\'
?>
Die backslash is ook 'n spesiale karakter in regex. Dit beteken dat binne die regex, vir die slash om homself te verteenwoordig, dit aanger skryf moet word soos vier keer:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // sal uitdruk '! ! !!'
?>
Laat ons nou 'n regex skryf waar die
soekpatroon sal wees: backslash
een of meer keer. In so 'n geval sal ons
die operateur + vir 4
karakters daarvoor sonder groepering skryf:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // sal uitdruk '! ! !'
?>
Gegee die string:
<?php
$str = 'a\\b c\\d e\\f';
?>
Vind in hierdie string al die substrings volgens die patroon letter, backslash, letter.
Gegee die string:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Vind in hierdie string al die substrings volgens die patroon letter, backslash enige aantal keer, letter.