Проблемът с обратната наклонена черта в PHP
Обратната наклонена черта е специален символ в PHP. Това означава, че в низ, ако искаме наклонената черта да означава сама себе си, трябва да я удвоим:
<?php
$str = '\\ \\\\ \\\\\\'; // всъщност низът е '\ \\ \\\'
?>
Обратната наклонена черта е и специален символ в регулярните изрази. Това означава, че в регулярен израз, за да означава наклонената черта сама себе си, трябва да бъде написана цели четири пъти:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // ще изведе '! ! !!'
?>
Нека сега напишем регулярен израз, в който
шаблонът за търсене е: обратна наклонена черта
един или повече пъти. В този случай ние
пишем оператора + за 4
символа преди него без групиране:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // ще изведе '! ! !'
?>
Даден е низ:
<?php
$str = 'a\\b c\\d e\\f';
?>
Намерете в този низ всички поднизове по шаблон буква, обратна наклонена черта, буква.
Даден е низ:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Намерете в този низ всички поднизове по шаблон буква, обратна наклонена черта произволен брой пъти, буква.