2013-01-22 16 views
1

我想從一個項目的不同站點提取不同的.swf文件。不同的網站使用不同的來源方法,所以我不能在我的正則表達式中使用src=data=當存在多個http URL時使用正則表達式獲取http URL

我可以將文件名與/[\w-]+.swf/g匹配,但是當我嘗試匹配以http開頭的完整路徑(http(.*?).swf)時,它匹配路徑(代碼中的第一個)之前的另一個http。此外,我不能使用src=data=等,它必須是唯一的鏈接。

基本上,有沒有一種方法可以將匹配限制爲向後搜索時找到的第一個http?

如果有人關心看看,那麼這裏是代碼:http://pastebin.com/kT20UqqJ。 而這裏的測試正則表達式的好去處:http://regex.larsolavtorvik.com/

回答

1

請嘗試以下之一:

var regex = /http:[\.\/\w-%]+\.swf/g 

你需要躲避.否則它將匹配任意字符和/,因爲它是表達的分隔符。

您可以在這裏看到working Example

+0

TNX很多,這似乎是完美的。 – yodalr

-1

如果你有url編碼字符(如空格),你的網址中也會有一個%

這裏是一個將在此情況下,工作的一個例子:/http:[\./\w%-]+\.swf/g

這裏是一個工具,您可以測試正則表達式:http://regexpal.com/

而且一個在那裏你可以檢查它的性能:http://regexter.com/

+0

這也適用,謝謝(y) – yodalr

+0

好吧,現在兩者之間沒有區別。我在Christoph改變了他的答案之前添加了它。無論如何,不​​客氣:-) –

+0

當然,你可能已經放棄了關於在我的正則表達式中添加%的註釋。相反,你只是複製我的正則表達式 - 即使是沒有加引號的斜槓的錯誤 - 非常英勇:-p – Christoph