Условие НЕ в выражении

Print RSS
445

Author
Господин ПЖ
0
Помогите составить регулярное выражение обработки ссылок

задача в следующем
есть к примеру ссылка http:\\xxx.ru есть такая ссылка [url=http:\\xxx.ru]site[\url]

все это парсится вот таким выражение

$msg = preg_replace_callback('~\[url=(https?://.+?)\](.+?)\[/url\]|(https?://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);

теперь к примеру я ввел тег img

[img]http:\\xxx.ru/images/logo.jpeg[/img]

которая парсится как <img src="http:\\xxx.ru/images/logo.jpeg" alt="image">

нужно доработать регулярку чтобы он ссылки такие не трогал

что-то вроде этого
$msg = preg_replace_callback('~\[url=(https?://.+?)\](.+?)\[/url\]|(?!src=\")(https?://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);
Changed: Вантуз-мен (09.06.2016 / 15:40)
Author
Господин ПЖ
0
Кажется разобрался, это называется отрицательное заглядывание назад
$msg = preg_replace_callback('~\[url=(https?://.+?)\](.+?)\[/url\]|(?<!src\=\")(https?://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);
Stickers / Tags / Rules / Top topics / Top Posts / Search