2009-09-25 40 views
0

我們的網站上的文本編輯器出現問題,導致網址加倍。因此,例如,文本字段可能看上去包含:正則表達式在數據庫字段中查找錯誤的URL

This is a description for a media item, and here in <a href="http://www.example.com/apage.htmlhttp://www.example.com/apage.html">a link</a>. 

所以幾乎我需要一個正則表達式來檢測以http開始,有一個結束引號之前另一HTTP,如「http://www.example.com/apage.htmlhttp://www.example.com/apage.html

+0

你只想要一個匹配或想要捕獲其中的一個? – 2009-09-25 16:59:18

回答

3
任何字符串
"http[^"]+http 
0

如果您可以使用*。?語法,你可以只看以下內容:

http(.*?)http 

如果它存在,拒絕url。

0

以http開始,有另一個http之前的報價是字符串:

^http[^"]*http 

但是,雖然這正好回答你的問題,我懷疑你可能想呃克萊姆的答案,而不是;-)

1
http://www.example.com/apage.htmlhttp://www.example.com/apage.html 

這實際上是一個有效的URL!所以你應該小心一點,不要在其他中間發生'http://'的URL。只檢測「翻番」的網址,你可以使用後向引用:

"(https?://[^"]*)\1" 

(這是一個非標準的正則表達式的功能,但最現代化的實現有它。)

使用正則表達式來處理HTML是一個糟糕的理念。 HTML不能可靠地被正則表達式解析。