Задача такая - парсить HTML код и выдирать из него регулярками части.
Регулярку написал.
preg_match("/<a[^>]*><img[^>]*src\\s*=\\s*([\\\"\\\'])?(?(1)(.*?)\\\\1|([^\\s\\>]+))/isx", $html, $match);
. Вот так все работает. Но мне надо хранить регулярку в файле с возможностью изменения пользователем. И если ее из файла считать в переменную, и писать уже вот так: preg_match($regexp, $html, $match);
, то она не выводит то что ранее.Вывел обе регулярки на страницу и заметил странность.
src\\s*=\\s*([\\\"\\\'])?(?(1) - вот так выглядит регулярка, считанная из файла.
src\\s*=\\s*([\"\\\'])?(?(1) - а вот так - когда просто строкой.
Как видно в первом случае не считается, что слеш перед \" просто их отменяет, а во втором соотв. \\\" заменяется на \".
Чего я не учитываю?