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';
?>
Ушбу сатрдаги барча кірим қатламларни изланг ҳариф, тил сланғич ихтиёрий сонида марта, ҳариф намунаси бўйича.