Problemet med omvendt skråstreg i PHP
Den omvendte skråstreg er et specialtegn i PHP. Det betyder, at i en streng, hvis vi ønsker, at skråstregen skal repræsentere sig selv, skal vi fordoble den:
<?php
$str = '\\ \\\\ \\\\\\'; // faktisk er strengen '\ \\ \\\'
?>
Den omvendte skråstreg er også et specialtegn i regulære udtryk. Det betyder, at inde i det regulære udtryk, for at skråstregen skal repræsentere sig selv, skal den skrives hele fire gange:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // vil udskrive '! ! !!'
?>
Lad os nu skrive et regulært udtryk, hvor
søgemønsteret er: omvendt skråstreg
en eller flere gange. I så fald skriver vi
operatoren + for 4
tegn foran det uden gruppering:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // vil udskrive '! ! !'
?>
Givet strengen:
<?php
$str = 'a\\b c\\d e\\f';
?>
Find alle delstrenge i denne streng, der matcher mønsteret bogstav, omvendt skråstreg, bogstav.
Givet strengen:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Find alle delstrenge i denne streng, der matcher mønsteret bogstav, omvendt skråstreg et vilkårligt antal gange, bogstav.