2015-08-30 66 views
2

我有我需要排序的網址列表。我會盡力解釋我需要什麼。在指定的詞結尾的網址中匹配網域

例子:

http://test56.testdom.com/dev123/85056704/test/test.php?something=else&t=1 
http://test14.testdoma.tv/dev234/93181034/test/backup.zip 
http://test22.testdomai.me/dev945/23145034/test/test.zip 
http://test12.testdomain.co.uk/dev184/95342034/test/random?random=123&stuff=true 
http://test76.testdomains.de/dev643/13453534/test/random.zip 

我需要一個正則表達式匹配的完整的域名,與zip結尾的網址,像這樣:所以基本上

test14.testdoma.tv 
test22.testdomai.me 
test76.testdomains.de 

:「如果有一個zip,匹配從test/「。

我該如何寫這樣的正則表達式?

+0

\/\ /([^ \ /] +)。*?\。zip $ @VixinG –

回答

1

在Notepad ++中,您不會像使用任何編程語言那樣獲得輸出。 但是你可以用查找和使用正則表達式替換,即:

FIND:https?://(.*?)/.*\.zip
REPLACE:$1

以上,將取代所有的URL拉鍊結束,與相應的域。

主題:

http://test56.testdom.com/dev123/85056704/test/test.php?something=else&t=1 
http://test14.testdoma.tv/dev234/93181034/test/backup.zip 
http://test22.testdomai.me/dev945/23145034/test/test.zip 
http://test12.testdomain.co.uk/dev184/95342034/test/random?random=123&stuff=true 
http://test76.testdomains.de/dev643/13453534/test/random.zip 

OUTPUT:

http://test56.testdom.com/dev123/85056704/test/test.php?something=else&t=1 
test14.testdoma.tv 
test22.testdomai.me 
http://test12.testdomain.co.uk/dev184/95342034/test/random?random=123&stuff=true 
test76.testdomains.de 

UPDATE:

隨着的JavaScript你可以使用這個表達式:

var myregexp = /https?:\/\/(.*?)\/.*\.zip/img; 

而對於PHP

$urls = <<< EOF 
http://test56.testdom.com/dev123/85056704/test/test.php?something=else&t=1 
http://test14.testdoma.tv/dev234/93181034/test/backup.zip 
http://test22.testdomai.me/dev945/23145034/test/test.zip 
http://test12.testdomain.co.uk/dev184/95342034/test/random?random=123&stuff=true 
http://test76.testdomains.de/dev643/13453534/test/random.zip 
EOF; 
    preg_match_all('%https?://(.*?)/.*\.zip%im', $urls, $matches, PREG_PATTERN_ORDER); 
    for ($i = 0; $i < count($matches[1]); $i++) { 
     echo $matches[1][$i]; 
    } 
1

嘗試以下的正則表達式:

/http:\/\/([^\/ ]+).+\.zip/g 

參見regex101例子。