LINUX.ORG.RU

PERL: nested html links


0

0

маюсь уже целый день. такая задача, что есть строка, которая является текстом html ссылки. и дело в том, что этот текст может содержать в себе html теги (<img> + <a>). так вот надо разбить эту строку на несколько строк следующим образом:

например есть строка: SLOVO1 <a href=«123»>123</a><img src=«»> SLOVO2

после разбиения должно получиться так: <a href=«main_link»>SLOVO1 </a> <a href=«123»>123</a><img src=«»> <a href=«main_link»> SLOVO2</a>

то есть надо выделить все символы, которые на являются частью тегов и обернуть их каждое скопление в html-линк

как посоветуете это сделать?


сначала подумал что у тебя сессия...

1. обернуть каждое скопление в линк

2. почистить лишние линки, т.е. <a href=«123»><a href=«main_link»>123</a></a>

www_linux_org_ru ★★★★★
()
$ echo 'SLOVO1 <a href="123">123</a><img src=""> SLOVO2' | perl -npe 'BEGIN { use re q(eval); $h=qr/<a[^>]*>(?:[^<]*|$h)*<\/[^>]*>/i } s/((?:$h|<img[^>]*>)*)([^<]+)/\1<a href=main_link>\2<\/a>/gi'

<a href=main_link>SLOVO1 </a><a href="123">123</a><img src=""><a href=main_link> SLOVO2</a>

но я не советую так делать

gavv
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.