2011-09-28 146 views
0

內我有這樣的正則表達式,用於檢測URL格式的文本:不匹配,如果標籤

/(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/ 

所以它會檢測到類似http://google.com

我的問題是,我不希望它來檢測鏈接當鏈接內部的標籤如<a href="http://google.com">http://www.google.com</a> - 所以在那裏它應該而不是檢測任何東西。幫幫我?

編輯 - 我不想匹配錨標記。上面的正則表達式匹配錨鏈接標籤裏面的鏈接,這是我做的不是想要的。我需要它僅在標籤之外匹配鏈接。

+0

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – knittl

回答

0

這個應該工作

/(?!href.*?=.*?['"]+)(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/ 
+0

這正則表達式是與我想要的相反。這是匹配錨標記和鏈接 – user969622

+0

@ user969622:否,?!確保它不存在 – genesis

+0

@ user969622,也許你正在與你想要的相反匹配,因此你會得到與你想要的相反目標相反的匹配。巴姆,雙重否定! –

0
/(?<!href=['"])(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/ 
+0

感謝這似乎是工作 – user969622

+0

嗯一些使用後,它在某些情況下停止運作,如' http:// www.test.com /'如果兩個相似的鏈接都存在它匹配他們兩個。這怎麼解決? – user969622