Любой символ включая перенос

Статус
В этой теме нельзя размещать новые ответы.
А теперь проверь на этом коде:
Код:
<a href="url">anchor</a>
<div class="class"><a href="url.html">
<img src="img.jpg" alt="alt"></a>
 
а ты свою регулярку пробовал на этом твоем коде :) прежде чем флудить хотя бы проверь. ТС предоставил код под него была регулярка а выдумать еще кучу хтмл а потом рассуждать правильно это или нет ИМХО это больше похоже на флуд
 
а ты свою регулярку пробовал на этом твоем коде :) прежде чем флудить хотя бы проверь. ТС предоставил код под него была регулярка а выдумать еще кучу хтмл а потом рассуждать правильно это или нет ИМХО это больше похоже на флуд
Согласен, не проверил, вот рабочая:
Код:
<a[^>]+href=['"]([^'^"]*?)['"][^>]*>\s*<img[^>]+>\s*</a>

Что касается флуда: вы предложили ничем не лучше работающий вариант после моего - это раз, отписали сообщение, которое нужно было писать в личку, а не в тему - это два.

И да, по поводу этого:
ТС предоставил код под него была регулярка а выдумать еще кучу хтмл а потом рассуждать правильно это или нет ИМХО это больше похоже на флуд
Это не выдумывание, это реальный опыт, и ваша регулярка начинает ехать если в тексте есть хотя бы одна ссылка не на картинки, а это практически сто процентная ситуация. И если размышлять в таком ключе, тогда зачем было вообще привязываться к IMG, ведь в примере ТСа других ссылок нету, почему вы не сделали вот такую регулярку?
Код:
href="(.*?)"
 
Спасиб всем. Решилось при помощи 're.S'.
Новая проблема с этой регуляркой. Споткнулся на вот таком хтмл:
Код:
<a href="http://domain1.com">domain1</a>, <a href="http://domain2.com"title="title"><img src="1.jpg">
Вот такой код:
Код:
'(\href=(\"|\')(.*?)(\"|\')(.*?)><img)'
в url[2] помещает 'хttp://domain1.com', а нужен там 'хttp://domain2.com'.
 
в url[2] помещает 'хttp://domain1.com', а нужен там 'хttp://domain2.com'.
Это ужас, а не регулярка, я приводил двумя постами выше регулярку, которая не спотыкается на вот таких примерах, вот на всякий случай её укороченный вариант:
Код:
<a[^>]+href=['"]([^'^"]*?)['"][^>]*>\s*<img
 
Это ужас, а не регулярка, я приводил двумя постами выше регулярку, которая не спотыкается на вот таких примерах, вот на всякий случай её укороченный вариант:
Код:
<a[^>]+href=['"]([^'^"]*?)['"][^>]*>\s*<img
Просто твоя регулярка в обоих вариантах выдает 'invalid syntax'. Может для питона есть отличия.
 
Код:
re.compile[B]([/B]r'(<a[^>]+href=['"]([^'^"]*?[B])[/B]['"][^>]*>\s*<img)')
Код:
re.compile[B]([/B]r'<a[^>]+href=['"]([^'^"]*?[B])[/B]['"][^>]*>\s*<img')
Точно не уверен как именно правильно, но в обоих вариантая объединяются выделенные скобки.
п.с. В общем кавычки нужно экранировать бекслешем...
Зато теперь:
Код:
    raise error, v # invalid expression
sre_constants.error: nothing to repeat
 
попробуй так:
Код:
<a[^>]+href=['"]([^'^"]+)['"](?:[^>]+)?>(?:\s+)?<img
З.Ы. каждый имеет своё видение правильной регулярки... чуток подправил... :) На PHP работает...
 
Ясно:) В питоне ковычки нужно экранировать... 'a[^>]+href=' тоже довольно странно писать... тем более между ними запросто может быть таргет_бланк:)
Еще такая проблема. Не получается шаблон 'любое количество любых символов если отсутствуют указанные слова'. Опробованы варианты на тему (?!exceptword) в разных комбинациях по манам из гугла... Наверное всеже я что нибудь делаю не так. Как сделать '(.*?)' если отсутствуют слова из списка?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху