Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > smart compare for HTML |
Автор: sol78 23.7.2008, 14:19 |
Я ищу что то вроде распознователя HTML линков типа '<a href="...">', желательно с использованием регулар експрессионс. Может у кого то есть решение? |
Автор: Feriman 23.7.2008, 14:26 |
Библиотека boost. |
Автор: sol78 23.7.2008, 14:39 |
Feriman, там есть готовое решение? можно парочку примерчиков? |
Автор: Feriman 23.7.2008, 14:40 |
Я имел ввиду работу с регулярными выражениями. Это есть в бусте. |
Автор: sol78 23.7.2008, 14:51 |
Feriman, спасибо это известний факт! Добавлено через 6 минут и 25 секунд Помогите мне плз, написати RExpression для нахождения URL из тага типа <a href="...">, со всем возможними вариантами использованиыа етого тага? |
Автор: W4FhLF 23.7.2008, 15:35 |
<a .*?href="(.*?)".*?>(.*?)</a> |
Автор: sol78 23.7.2008, 15:37 |
W4FhLF, прекрасно? толь можно обьяаснить что там происходит? |
Автор: W4FhLF 23.7.2008, 15:41 |
Ты хочешь, чтобы я объяснил, что такое рег. выражения и как они работают? http://ru.wikipedia.org/wiki/Регулярные_выражения |
Автор: sol78 23.7.2008, 15:47 |
И еще может быть по теме, существиет какой либо "быстрый" способ проверьть R.E. (без написания кода), на подобе что сущесвет online парсер для проверки HTML страниц, т.е. вводишь текст и R.E. и получаешь оутпут? Добавлено через 3 минуты и 24 секунды (.*?) - то что возращает? |
Автор: lc0d3r 23.7.2008, 16:47 |
а есть что-то полегче весом? собранная программа с string и boost весит 650кб с pcre тестовый пример 500кб, есть что-то поменьше весом? sol78, для быстрой проверки и написания регулярок юзаю RegexBuddy, как сказал товарищ выше и онлайн тузлу http://www.pcre.ru/eval/ |
Автор: sol78 23.7.2008, 16:48 |
скачать бесплатно W4FhLF, попробывала твой р.е. на RegexBuddy что выход ни какой? Как ты его испытывал? |
Автор: lc0d3r 23.7.2008, 16:55 | ||
по поводу поиска ссылок я бы юзал такую регулярку она более строгая
|
Автор: W4FhLF 23.7.2008, 17:04 |
http://ipicture.ru/Gallery/Viewfull/4012141.html |
Автор: sol78 24.7.2008, 09:55 |
вот что у мeня получилось (вложениы фаил). Вот вопросы: 1. Там у тя вибрано perl, почему? Если я пишу на С++, что нужно выбрать? 2 В чем существеннаыа разница между: <a .*?href="(.*?)".*?>(.*?)</a> и <a\s[^>]*href="([^"]+)">? Добавлено через 3 минуты и 17 секунд file: |
Автор: sol78 24.7.2008, 11:45 |
W4FhLF, Тесты с <a .*?href="(.*?)".*?>(.*?)</a>: 1.Это тоже тип линка? Почему он его не распознает? <area shape="rect" coords="58,129,100,183" href="http://forum.vingrad.ru/forum/s/05dc2a9c3f09e25301fab723b5482a32/c-c++general-questions.html" alt="Форум" id="nav_forum" /> 2.Это не распознается: <a href='http://forum.vingrad.ru/forum/s/05dc2a9c3f09e25301fab723b5482a32/act-Post/CODE-10/f-92.html'><img src="/style_images/2/t_poll.gif" border="0" alt="Создание опроса" title="Создание опроса" /></a> <a href='http://vingrad.ru/@Feriman'>Профиль</a> НО ЭТО почему он это признал? <a href='http://forum.vingrad.ru/s/05dc2a9c3f09e25301fab723b5482a32/act-Msg/CODE-04/MID-31297/p-1589444/t-221761.html'><img src="/style_images/2/p_pm-off.gif" alt="PM " class="preload6" title="Отправить персональное сообщение" /></a><a href='http://forum.vingrad.ru/s/05dc2a9c3f09e25301fab723b5482a32/act-Mail/CODE-00/MID-31297.html'><img src="/style_images/2/p_email-off.gif" alt="MAIL " class="preload7" title="Письмо на e-mail пользователю" /></a><a href="javascript:PopUp('http://forum.vingrad.ru/s/05dc2a9c3f09e25301fab723b5482a32/act-ICQ/MID-31297.html','Pager','450','330','0','1','1','1')"><img src="/style_images/2/p_icq-off.gif" alt="ICQ " class="preload10" title="ICQ" /></a> Можно настроить RegexBuddy, чтоб он не просто отмечал совпадениq? а возрощал сам линк? как это сделать? И что будет возвращено в етом случае?? <a name="entry1589603" href="#" onclick="ubbc_addAfterQuote('W4FhLF, '); return false;" title="Вставить ник в поле ввода">W4FhLF</a> |
Автор: lc0d3r 24.7.2008, 12:10 |
sol78, ну ты смотри в предыдущих примерах у тя был адрес в ", теперь ' <a\s[^>]*href=["']([^"]+)["']> вот для этого случая) |
Автор: sol78 24.7.2008, 14:38 |
Можно настроить RegexBuddy, чтоб он не просто отмечал совпадениq? а возрощал сам линк? как это сделать? И что будет возвращено в етом случае?? <a name="entry1589603" href="#" onclick="ubbc_addAfterQuote('W4FhLF, '); return false;" title="Вставить ник в поле ввода">W4FhLF</a> |
Автор: lc0d3r 24.7.2008, 15:50 | ||
sol78, <a\s[^>]*href=["']*([^"]+)["']*.*> вернет, # то на что ссылается
там когда делаешь тест, по центру справа есть кнопка с выбором того что показывать в результате |