Problém spätného lomítka v PHP
Spätné lomítko je špeciálnym znakom PHP. To znamená, že v reťazci, ak chceme, aby lomítko predstavovalo samo seba, musíme ho zdvojnásobiť:
<?php
$str = '\\ \\\\ \\\\\\'; // v skutočnosti reťazec '\ \\ \\\'
?>
Spätné lomítko je tiež špeciálnym znakom regulárnych výrazov. To znamená, že vo vnútri regulárneho výrazu, aby lomítko predstavovalo samo seba, musí byť napísané až štyrikrát:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // vypíše '! ! !!'
?>
Skúsme teraz napísať regulárny výraz, v ktorom
vyhľadávací vzor bude: spätné lomítko
jeden alebo viac krát. V takom prípade
napíšeme operátor + pre 4
znakov pred ním bez zoskupenia:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // vypíše '! ! !'
?>
Daný reťazec:
<?php
$str = 'a\\b c\\d e\\f';
?>
Nájdite v tomto reťazci všetky podreťazce podľa vzoru písmeno, spätné lomítko, písmeno.
Daný reťazec:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Nájdite v tomto reťazci všetky podreťazce podľa vzoru písmeno, spätné lomítko ľubovoľný počet krát, písmeno.