Помогите с регулярным выражением

Dweep
На сайте с 11.12.2006
Offline
207
466

Есть регулярное выражение, которое ищет все ссылки с сайта

preg_match_all("|href=\"(.*)\"|Ui", $html, $out, PREG_SET_ORDER);

Нужно найти такие ссылки, которые не содержат текста gif

Как это правильно переписать href=\"(.*)\" ?

Shtogrin
На сайте с 02.11.2006
Offline
95
#1

не содержат gif в конце или где угодно?

preg_match_all("|href=\"(.*(?<!\.gif))\"|Ui", $html, $out, PREG_SET_ORDER);

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Dweep
На сайте с 11.12.2006
Offline
207
#2

В конце желательно, но можно и что б где угодно не содержала.

Ваш вариант не работает, начинает находить такое:

icon.gif" type=

Shtogrin
На сайте с 02.11.2006
Offline
95
#3

выражение перестает быть жадным, можно еще так попробовать, должно работать

preg_match_all("|href=\"([^\"]*(?<!gif))\"|iU", $html, $out, PREG_SET_ORDER);

хотя, наверно, проще отфильтровать уже результат

Dweep
На сайте с 11.12.2006
Offline
207
#4

Спасибо! работает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий