Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2012, 16:54   #1
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию Delphi - RegExpr - поиск сырых ссылок

Здравствуйте.
Поиск по теме выдал много результатов, но все они отработали некорректно у меня.

Задача: есть некий текст, в котором имеются ссылки не обернутые в теги. нужно их обернуть. Для этого использую библиотеку на основе RegExpr. Называется она HyperLinksDecorator.
Там есть уже готовое выражение для поиска ссылок.
Код:
 URLTemplate =
   '(?i)'
   + '('
   + '(ftp|http|https)://'             // Protocol
   + '|www\.)'                   // trick to catch links without
                                 // protocol - by detecting of starting 'www.'
   + '([\w\d\-]+(\.[\w\d\-]+)+)' // TCP addr or domain name
   + '(:\d\d?\d?\d?\d?)?'        // port number
   + '(((/[%+\w\d\-\\\.]*)+)*)'  // unix path
   + '(\?[^\s=&]+=[^\s=&]+(&[^\s=&]+=[^\s=&]+)*)?';
Но это не совсем то, что нужно. Например,ссылки такого вида
Код:
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=url#hl=ru&newwindow=1&sclient=psy-ab&q=url&oq=url&aq=f&aqi=&aql=&gs_nf=1&gs_l=serp.12...0.0.0.1628.0.0.0.0.0.0.0.0..0.0.x0qj-D166v4&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=76b67039ec3b3d58&biw=1366&bih=600
Оборачиваются не полностью, а только половина или четверть.
Попытался изменить шаблон выражения на:
Код:
URLTemplate = '((ftp|http|https)://|www\.)([\w\d\-_\.]+(\.[\w\d\-]+)+)(:\d\d?\d?\d?\d?)?(((/[%+\w\d\-\\\.]*)+)*)((\?\#)(([a-ZA-Z0-9\.-_:]+=[a-ZA-Z0-9\.-_:\%]+)*)?)';
но теперь выпадает эксепшн TRegExpr(comp): Invalid [] Range (pos 109)

Поможете дописать/переписать шаблон выражения?

Библиотека http://regexpstudio.com/ru/TRegExpr/TRegExpr.html
HyperLinksDecorator http://code.google.com/p/mail-extrac...?spec=svn3&r=3
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск всех внешних ссылок с сайта asale PHP 2 24.04.2012 22:56
Поиск ссылок в реестре -Flasher- Общие вопросы Delphi 1 06.01.2010 02:16
Delphi - оформление ссылок Alexmur07 Помощь студентам 3 30.11.2009 11:05
RegExpr - применение, синтаксис, литература, примеры... Alter Компоненты Delphi 0 07.07.2009 21:33
Как при помощи сырых-COM использовать компонет браузер IE AlexDX Общие вопросы C/C++ 0 04.02.2009 20:24