正则表达式注释中的超链接

时间:2011-11-21 15:27:30

标签: regex hyperlink comments

我正在尝试找到一个解决方案,从每个以%开头的评论中提取超链接。我的第一个想法是使用常规超链接正则表达式:

^(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 :(得分:0)

我想这取决于正在执行你的正则表达式的语言,但你可以尝试将URL部分放在括号中:

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

通过这种方式,您可以将其作为一个组(通常是$1)等表达式进行访问。