我正在尝试找到一个解决方案,从每个以%
开头的评论中提取超链接。我的第一个想法是使用常规超链接正则表达式:
^(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 ++
感谢所有答案!
答案 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
)等表达式进行访问。