Экраніроўка абмежавальнікаў у PHP
Калі сімвал не з'яўляецца спецыяльным, то, калі вы выкарыстоўваеце яго ў якасці абмежавальніка, яго трэба будзе экранаваць у самой рэгулярцы. Паглядзім на прыкладзе.
Хай у нас у якасці абмежавальнікаў выступаюць рэшэткі, а ўнутры рэгуляркі мы шукаем сімвал амперсанда. Так як амперсанд не з'яўляецца спецсімвалам, то мы яго не экрануем:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // выведзе '!'
?>
Хай цяпер абмежавальнікі - амперсанды і ўнутры рэгуляркі нам таксама патрэбен амперсанд. У такім выпадку амперсанд унутры даводзіцца экранаваць, інакш гэта выкліча памылку PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // выведзе '!'
?>
Выправіце памылку, дапушчаную ў наступным кодзе:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>