2011-11-21 96 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