2012-12-14 102 views
0

我有一個很長的HTML文件,其中包含組織及其URL的名稱。代碼中的每個組織的「部分」都由「組織」一詞加上許多代碼進行劃分,其URL位於該代碼內部,並以「組織」一詞結尾。查找兩個字符串內的URL正則表達式

例如:

組織 - 大量的代碼(用URL位於某處內) - 組織

我曾嘗試使用正則表達式搜索和提取URL,但無濟於事。

organization(?<Protocol>\w+):\/\/(?<Domain>[\[email protected]][\w.:@]+)\/?[\w\.?=%&=\ @/$,]*organization 

我懷疑我的問題在於我試圖通過只使用單詞「組織」劃定爲URL的搜索某個地方,但我不知道。

+0

'organization。*?'... r如果你可以讓'.'也匹配換行符,否則它可能是'organization(。| \ s)*?'等等。 – Wrikken

+2

10你可以給我們看一個* actual *的例子?我們可以測試我們的解決方案嗎? – ghoti

回答

0

您當前的正則表達式是在尋找的東西「組織」的兩個實例之間夾馬上。如果在「組織」和你的網址之間存在任何字符的機會,你需要爲任何事情引入一個非貪婪的匹配(.*?),如果組合中有換行符,則需要使用(?:.|\n)*?

所以,你的正則表達式就變成了:
organization(?:.|\n)*?(?<Protocol>\w+):\/\/(?<Domain>[\[email protected]][\w.:@]+)\/?[\w\.?=%&=\ @/$,]*(?:.|\n)*?organization

(因爲大膽插入的,這個錯誤出現有空格,但它不一樣,如果你選擇。它並複製/粘貼,它將正確粘貼,不用空格)

+0

謝謝。我試過了,但我得到了以下結果: – DCL

+0

好吧,正如ghoti在評論中指出的那樣,我們沒有辦法進行測試,因爲您沒有提供任何示例。在這一點上,我們所能做的就是在黑暗中進行刺探。 – joequincy

相關問題