Comments 46
Что-то с картинками не так
и катом
и катом
0
эм…
а если в тэге PRE встретиться последовательность <IMG src=… .../>?
а если в тэге PRE встретиться последовательность <IMG src=… .../>?
0
Не важно внутри какого тега. Будет работать.
Это не готовое к употреблению выражение, но в 99% случаев будет работать.
Если парсить страницу целиком, желательно перед этим убрать со страницы скрипты и комменты (отдельной регуляркой)
Особенно проблематичными могут оказаться конструкции типа onmouseover=«document.write('<img src...)»
Это не готовое к употреблению выражение, но в 99% случаев будет работать.
Если парсить страницу целиком, желательно перед этим убрать со страницы скрипты и комменты (отдельной регуляркой)
Особенно проблематичными могут оказаться конструкции типа onmouseover=«document.write('<img src...)»
0
Дык! В этом и проблема!
Зачем собирать картинки, которые не картинки вовсе, а обычный текст?
Ваша задача — «Задача — найти в HTML все теги IMG»
Вот в текста ниже — НЕТ тэгов IMG!
Зачем собирать картинки, которые не картинки вовсе, а обычный текст?
Ваша задача — «Задача — найти в HTML все теги IMG»
Вот в текста ниже — НЕТ тэгов IMG!
<IMG src=abc/>
+2
Сорри, хабр съел. Вот правильный листинг:
<PRE>
<PRE>
<IMG src=abc/></PRE>
0
Твоя правда, спорить не буду :)
Тогда небольшая поправка:
Если парсить страницу целиком, желательно перед этим убрать со страницы скрипты и комменты, блоги PRE (отдельной регуляркой)
Тогда небольшая поправка:
Если парсить страницу целиком, желательно перед этим убрать со страницы скрипты и комменты, блоги PRE (отдельной регуляркой)
0
это можно указать в заметках к топику, чтобы не смущать новичков, чтобы не думали что есть простые лекарства :)
0
Кстати, а как купить RegexBuddy в России?
0
Не знаю. Я с таблеткой нашел. :)
Хотя была бы возможность, купил бы!
Оно того стоит!
Хотя была бы возможность, купил бы!
Оно того стоит!
0
Я пользуюсь The Regex Coach
Правда, она иногда глючит и приходится проверят на своей собственной програмке простенькой.
Правда, она иногда глючит и приходится проверят на своей собственной програмке простенькой.
0
UFO just landed and posted this here
если имеется в виду, что выводится код в указанном виде, то там будут html-entities
если прямо в таком виде написать — то будет картинка, которая выловится
если прямо в таком виде написать — то будет картинка, которая выловится
0
Проблема в том, что на самом деле внутри
может рендеряться. http://darkk.net.ru/tmp/image-inside-of-pre.html
0
-2
Интересно бы больше узнать о бесплатных тулзах для работы с регулярными выражениями. Пользоваться приходится редко, и в основном для .net, так что вполне устаривают ограничения «должен быть установлен .Net». Пошел за последней версией Regulator (http://sourceforge.net/projects/regulator/), но он при запуске выдавал иксепшен и слетал. Ковырятся в исходниках желания не было, да и задача с регулярным выражением была не настолько серьезной чтобы в исходниках регулятора ковыряться. В итоге на рсдн-е нашел RegEx Tracer (http://www.rsdn.ru/Forum/?mid=1884510), все что мне надо было, он делал. Но, повторюсь, хотелось бы побольше бесплатных тулов для работы с regex-пами.
0
А бесплатных аналогов нет?
-1
Вспоминается шутка:
В вашем примере вам быстрее было бы парсер HTML написать, чем так мучаться.
Если у вас проблема и вы ее решаете регулярными выражениями, то у вас две проблемы.
В вашем примере вам быстрее было бы парсер HTML написать, чем так мучаться.
0
Регулярки нужно знать хотя-бы для того, чтобы никогда не использовать. :)
0
Таки да :)
Интересно, как по скорости будет работать алгоритм, который вытаскивает все вот этой одной регуляркой и процедура, которая вытащит все и распарсит их отдально на тэги, взяв нужное?
Интересно, как по скорости будет работать алгоритм, который вытаскивает все вот этой одной регуляркой и процедура, которая вытащит все и распарсит их отдально на тэги, взяв нужное?
0
Не обязательно все вытаскивать: можно strpos("<img"..), а дальше парсить :-)
0
Ну, это страшненько :)
Но вообще, я когда защиту на PHP писал, у меня регэкспы вытаскивали заодно и позицию. Я, правда, от нее назад плясал — мне надо было вытащить все объекты при использовании функций и переменных (...->...).
Если бы я пошел по пути написания одного большого регэкспа, я бы, наверное, до сих пор отлаживал…
Хотя вот там в какой-то момент приходит мысль, что уже неплохо бы и разборщик грамматики написать, вместо всего этого :)
Но вообще, я когда защиту на PHP писал, у меня регэкспы вытаскивали заодно и позицию. Я, правда, от нее назад плясал — мне надо было вытащить все объекты при использовании функций и переменных (...->...).
Если бы я пошел по пути написания одного большого регэкспа, я бы, наверное, до сих пор отлаживал…
Хотя вот там в какой-то момент приходит мысль, что уже неплохо бы и разборщик грамматики написать, вместо всего этого :)
0
Хм, можно и конечный автомат написать :)
Но я бы сделал так:
/<img[^>]+>/i
Под большинство случаев вполне подойдет. Если надо 100% совпадение со всеми вариантами — тут без КА никак.
Но я бы сделал так:
/<img[^>]+>/i
Под большинство случаев вполне подойдет. Если надо 100% совпадение со всеми вариантами — тут без КА никак.
0
с HTML таки да, потому что там есть простая формальная грамматика, и проще сделать парсер. А бывают случаи когда формальной грамматики нет, или она слишком сложная, тогда нужны рэгекспы потому что проще описать некоторые шаблоны чем грамматику.
0
<img\b, или <img\s+ не забывайте в названиях тэгов. Иначе можно нарваться на xml и пропарсить лишнего.
0
UFO just landed and posted this here
«куда лениво захватываются» — может, всё-таки нежадно? Ленивые обычно вычисления…
0
Не рекомендовал бы применять регулярные выражения для работы с HTML.
Проще приводить HTML к валидному XML и потом кучей различных способов его можно обработать и выполнить ту же задачу более качественно и быстро.
Проще приводить HTML к валидному XML и потом кучей различных способов его можно обработать и выполнить ту же задачу более качественно и быстро.
+1
Нормальной оффлайн программы для regexp я не нашёл под linux (сижу на kubuntu, kregexpeditor какой-то уж совсем непонятный, альтернативы какие-то хилые), наиболее удобным для себя нашёл онлайн-парсер regexpal.com/ — есть небольшие глюки с выделением результатов, а в остальном — штука отличная, выручает очень часто! Так что рекомендую всем к использованию! Бесплатно и всегда под рукой на любом компе.
0
Также есть неплохая софтина RegexCoach.
www.weitz.de/regex-coach/
www.weitz.de/regex-coach/
0
Спасибо за regex buddy. Отлаживать регулярки в pipes — то еще удовольствие.: )
0
Для файрфокса плагин есть «Regular Expressions Tester». Для простого тестирования пойдет.
0
спасибо за статью, в очередной раз отыскал её в избранном и воспользовался
0
Sign up to leave a comment.
Named Capturing Group и Backreferences