我在java中有一個正則表達式來從我爬過的網頁中提取某些url。這些網址基本上都是JavaScript和樣式表,它們被納入到網頁中。我選擇使用正則表達式來提取這些文件,而不是解析文檔,因爲這應該更容易,解析文檔對我來說沒有任何附加價值。加速Java正則表達式
要得到有效的URL(絕對或相對)我用下面的正則表達式:
([^"',\(]*)/endofurl
它提取之間的任何東西「」,(和URL的結束,在這個例子中‘/ endofurl’。
的問題是,它不是快速(可能是因爲([^「」,(*)部分) 有沒有辦法通過加快這。例如讓它尋找'/ endofurl'部分首先,然後返回,直到它到達其中一個開始字符?
你能告訴我們一些示例網址嗎? –
這聽起來像你有一個更復雜的機制比提取網址的基本正則表達式,所以你可能需要使用正則表達式爲每一步編碼你的機制/步驟。即第1步首先查找endofurl,然後第2步等。 – abstractx1
我認爲在這裏單獨使用正則表達式是錯誤的工具。您應該使用XML/HTML解析器來抓取感興趣的標籤/節點。在此之後,您可以在每個隔離標籤上使用正則表達式來驗證URL。 –