Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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 секунды
(.*?) - то что возращает?

Автор: W4FhLF 23.7.2008, 16:27
Цитата(sol78 @  23.7.2008,  15:47 Найти цитируемый пост)
И еще может быть по теме, существиет какой либо "быстрый" способ проверьть R.E. (без написания кода)


RegexBuddy

Цитата(sol78 @  23.7.2008,  15:47 Найти цитируемый пост)
(.*?) - то что возращает?


Нежадный квантификатор. Вернёт то, что находится между двумя ближайщими тегами <a href="..."> и </a>

Автор: 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
по поводу поиска ссылок я бы юзал такую регулярку она более строгая
Цитата

<a\s[^>]*href="([^"]+)">

Автор: W4FhLF 23.7.2008, 17:04
Цитата(sol78 @  23.7.2008,  16:48 Найти цитируемый пост)
Как ты его испытывал?


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=["']*([^"]+)["']*.*>

вернет, # то на что ссылается 

Цитата

Можно настроить RegexBuddy, чтоб он не просто отмечал совпадениq? а возрощал сам линк? как это сделать?


там когда делаешь тест, по центру справа есть кнопка с выбором того что показывать в результате

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)