При проверке ответа на вопрос другого пользователя Я обнаружил что-то, чего не понимаю. Проблема заключалась в замене всех буквенных символов \t
\n
\r
из строки одним пробелом.
Итак, первый шаблон, который я попробовал, был:
/(?:\\[trn])+/
, что на удивление не сработало. Я попробовал тот же шаблон в Perl, и он работал нормально. После некоторых проб и ошибок я обнаружил, что PHP хочет 3 или 4 обратной косой черты для совпадения этого шаблона, как в:
/(?:\\\\[trn])+/
или
/(?:\\\[trn])+/
эти паттерны - к моему удивлению - оба работают. Зачем нужны эти дополнительные обратные слеши?