2011-11-21 91 views
2

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

^(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

可以请您分享样本内容吗?在''标签的'href'属性内? –

回答

0

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

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

这样,你可以访问它作为一个群体(通常一个表达式,如$1)。

+0

我正在使用Qt C++并且你的表达与我的相同 – 8472

+0

@ 8472这就是为什么你需要告诉我们你在OP中使用哪种语言。 – Bojangles

+0

@ 8472你如何执行正则表达式?一旦你执行你的表情,你能隔离一个组吗?也许如果你向我们展示了你的代码,我们可以弄清楚如何使它工作 – madd0