Problem obrnnog kosog crte u PHP-u
Obrnuta kosa crta je specijalni karakter u PHP-u. To znači da u stringu, ako želimo da kosa crta označava samu sebe, moramo je udvostručiti:
<?php
$str = '\\ \\\\ \\\\\\'; // zapravo string je '\ \\ \\\'
?>
Obrnuta kosa crta je takođe i specijalni karakter regularnih izraza. To znači da unutar regularnog izraza, da bi kosa crta označavala samu sebu, potrebno je da je napišemo čak četiri puta:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // ispisaće '! ! !!'
?>
Hajde sada da napišemo regularni izraz, u kome će
šablon za pretragu biti: obrnuta kosa crta
jedan ili više puta. U tom slučaju ćemo
napisati operator + za čak 4
karaktera ispred njega bez grupisanja:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // ispisaće '! ! !'
?>
Dat je string:
<?php
$str = 'a\\b c\\d e\\f';
?>
Pronađite u ovom stringu sve podstringove po šablonu slovo, obrnuta kosa crta, slovo.
Dat je string:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Pronađite u ovom stringu sve podstringove po šablonu slovo, obrnuta kosa crta bilo koji broj puta, slovo.