Регулярное выражение для выборки и замены текста с гиперссылкой

Есть в бд вот такие данные

<nobr><a href=https://www.site.ru/talk/post9070.html target=_blank>www.site.ru/talk/post9070.html</a></nobr> <nobr><a href=https://www.site.ru/talk/post9689.html target=_blank>www.site.ru/talk/post9689.html</a></nobr><br />

<p><nobr><a href=https://www.site.ru/talk/post9071.htl target=_blank>www.site.ru/talk/post9071.html</a></nobr> asdfasdf</p>

<a href=https://www.site.ru/talk/post97.html target=_blank>www.site.ru/talk/post97.html</a>

<nobr><a href=https://www.site.ru/talk/post11269 target=_blank>www.site.ru/talk/post11269</a></nobr><br />
<p><nobr><a href=https://www.site.ru/talk/post9071.html#4567 target=_blank>www.site.ru/talk/post9071.html#4567</a></nobr> asdf</p>

<nobr><a href=https://www.site.ru/talk/comments2016p1.html target=_blank>www.site.ru/talk/comments2016p1.html</a></nobr>

<nobr><a href="https://www.site.ru/talk/post46362.html#5571343" target=_blank>site.ru/talk/post46362.html#5571343</a></nobr>

Нужна выборка для замены целых блоков

<a href=https://www.site.ru/talk/post97.html target=_blank>www.site.ru/talk/post97.html</a> 

-- [post97]

<a href=https://www.site.ru/talk/post97.html#1234 target=_blank>www.site.ru/talk/post97.html#1234</a> 

-- [post97#1234]

<nobr><a href=https://www.site.ru/talk/comments2016p1.html target=_blank>www.site.ru/talk/comments2016p1.html</a></nobr> 

--[comment2016p1]

<nobr><a href=https://www.site.ru/talk/comments2016p1.html#123 target=_blank>www.site.ru/talk/comments2016p1#123.html</a></nobr> 

--[comment2016p1#123]

Вот регулярное выражение

<nobr><a href="?https:\/\/www\.site\.ru\/talk\/post([0-9]+)[\.html|gif]{0,5}(#[0-9]{1,})?"? target=_blank>(www\.)?site\.ru\/talk\/post[0-9]+[\.html]*#?[0-9]*<\/a><\/nobr>

хочу заменить с помощью preg_replace , для этого в качестве $1 id поста или коммента, в качестве $2 (post или comment) а в качестве $3 - все что после решетки

Вопросы

  1. как сделать так что бы не были учтены в выборке , например я могу сделать вот так ()? , но в таком случае это будет первый параметр для замены, что мне не нужно Могу сделать вот так []* но в таком случае сработает любая последовательность этих символов.
  2. тоже самое с .html оно может быть а может и не быть, но не нужно что бы оно учувствовало в выборке в качестве параметра.

Спасибо


Ответы (0 шт):