Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppPmRgBc 244 of 447 menu

Праблема адваротнага слэша ў 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'; ?>

Знайдзіце ў гэтым радку ўсе падрадкі па шаблоне літара, адваротны слэш любую колькасць разоў, літара.

byenru