Het backslash probleem in PHP
Een backslash is een speciaal teken in PHP. Dit betekent dat in een string, als we willen dat de backslash zichzelf vertegenwoordigt, we het moeten verdubbelen:
<?php
$str = '\\ \\\\ \\\\\\'; // eigenlijk is de string '\ \\ \\\'
?>
Een backslash is ook een speciaal teken in reguliere expressies. Dit betekent dat binnen een reguliere expressie, om een backslash zichzelf te laten vertegenwoordigen, we het wel vier keer moeten schrijven:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // geeft '! ! !!'
?>
Laten we nu een reguliere expressie schrijven waarin
het zoekpatroon is: backslash
een of meer keer. In dat geval schrijven we
de operator + voor wel 4
tekens ervoor zonder groepering:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // geeft '! ! !'
?>
Gegeven een string:
<?php
$str = 'a\\b c\\d e\\f';
?>
Vind alle substrings in deze string volgens het patroon letter, backslash, letter.
Gegeven een string:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Vind alle substrings in deze string volgens het patroon letter, backslash een willekeurig aantal keren, letter.