Regex — дублируйте ссылки HTML и ставьте что-нибудь после

У меня много таких текстов:

<a href="https://mega.co.nz/#![RandomThings1]" target="_blank">[RandomThings2] [<span style="color:#008000;">[RandomThings3]</span>]</a>

Я хочу превратить их в это:

<a href="https://mega.co.nz/#![RandomThings1]" target="_blank">[RandomThings2] [<span style="color:#008000;">[RandomThings3]</span>]</a> <a href="http://no.refer.co/?link=https://mega.co.nz/%23![RandomThings1]" target="_blank">NoRefer</a>

Как я могу это сделать?

1

Решение

Так как Regex flavour в плагине Search Regex WordPress PHP, вы можете попробовать следующее регулярное выражение, которое предполагает, что у вас действительно есть произвольный текст в квадратных скобках ([RandomThings1]):

(<a\s+[^>]*?href="[^"]*#!(\[.*?\])"[^>]*?>[^<>]*?<span[^>]*?>[^<>]*?<\/span>[^<>]*?<\/a>)

Заменить $1 <a href="http://no.refer.co/?link=https://mega.co.nz/%23!$2" target="_blank">NoRefer</a>,

Вот демонстрация.

Код PHP:

$re = "/(<a\\s+[^>]*?href=\"[^\"]*#!(\\[.*?\\])\"[^>]*?>[^<>]*?<span[^>]*?>[^<>]*?<\\/span>[^<>]*?<\\/a>)/";
$subst = "$1 <a href=\"http://no.refer.co/?link=https://mega.co.nz/%23!$2\" target=\"_blank\">NoRefer</a>";
$result = preg_replace($re, $subst, $str);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]