Reg Ex для гиперссылок в комментариях - PullRequest
2 голосов
/ 21 ноября 2011

Я пытаюсь найти решение для извлечения гиперссылки из каждого комментария, который начинается с %. Моей первой идеей было использовать регулярное выражение гиперссылки:

^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$

и какой-то шаблон, например:

%.*

поэтому я добавил их обоих:

^%.*(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$

Но с этим шаблоном я сопоставляю все, включая символ % и несколько пробелов. Как я могу получить только гиперссылку внутри комментария?

EDIT1:

Вот пример того, что анализировать:

% http://www.test.com

Это обычный комментарий MATLAB, и я хочу выделить его как гиперссылку, чтобы получить более интуитивно понятный редактор. Я работаю с Qt 4.7.1 / C ++

Спасибо за все ответы!

1 Ответ

0 голосов
/ 21 ноября 2011

Полагаю, это немного зависит от языка, на котором выполняется ваше регулярное выражение, но вы можете попробовать поместить часть URL в круглые скобки:

%.*((http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s])

Таким образом, вы можете получить к нему доступ как к группе (обычно это выражение, такое как $1).

...