Здравствуйте!
Пытаюсь обернуть содержимое параграфов из переменной
$text
, элементом
i
.
Написал регулярное выражение, которое берет
только содержимое параграфов и затем, с помощью callback-функции, оборачиваю это содержимое элементами
i
.
<?php
echo preg_replace_callback(
'/(?<=\<p[^\>]*\>)([\s\S]*)(?=\<\/p\>)/miuU',
function( $match ) {
return '<i>' . $match[1] . '</i>';
},
$text
);
... но, это регулярное выражение валится с ошибкой:
Warning: preg_replace_callback(): Compilation failed: lookbehind assertion is not fixed length at offset 16 in...
Конечно, можно достать отдельно открывающий и закрывающий элементы параграфа и затем вернуть их на место. Но, это будет уже какая-то ерунда, ведь с позитивным просмотром вперед и назад, код получается гораздо чище.
Почему не срабатывает это регулярное выражение именно с функцией
preg_replace_callback
? И есть ли еще какая-либо возможность в регулярных выражениях, вытащить содержимое элемента параграфа и обработать только его?
Спасибо!