У меня почти есть регулярное выражение для сглаживания html-страниц, но я столкнулся с двумя проблемами, которые я пытаюсь получить, прежде чем продолжить, мне нужно иметь возможность сопоставлять как пустые, так и косые черты (и пустая цитата закрытия), но исчерпали мою способность видеть, что я делаю, может кто-то помочь мне с финальным бит?PHP Regex отсутствует два совпадения
$pathspec='in-front';
$subjects = array(
'<base href="http://foo.com/images/" target="_blank">', # no changes (correct)
'<base href="/" target="_blank">', # '/in-front/' (fails)
'<a href="https://foo.com/images/">Foo</a>', # no changes (correct)
'<a href="">Foo</a>', # '/in-front/' (fails)
'<img src="bar/foo.png" />', # no changes (correct)
'<img src="/bar/foo.png" />', # '/in-front/bar/foo.png' (correct)
);
foreach ($subjects AS $subject)
echo preg_replace('/(href|src)=["\']?\/(?!\/)([^"\'>]+)["\']?/', "$1='/$pathspec/$2'", $subject) . "\n";
die;
Ожидаемый результат в части комментариев, спасибо.
@php_nub_qq: Да что? –
Итак, в основном вы хотите добавить '$ pathspec' в любой пустой или корневой атрибут href, да? –
@php_nub_qq закрыть, внимательно прочитать регулярное выражение, а также ожидаемые выходы вместе с их входами. – ehime