2010-12-17 71 views
-2

我有一個正則表達式匹配的URL:URL的正則表達式exluding specifik域

(?:(?:http|ftp):\/\/)?[^\s]+\.[a-z]{2,}[^\s]* 

現在我想允許特定URL和它的變體。

Like www.example.comhttp://example.com/slash/slah?hello=world

在其他方式中,我希望我的表達式不匹配這些情況。我一直在尋找未來,並期待後面,但不能真正把它們放在適當的位置。

我想可能會做一個正則表達式來匹配異常,並用___match替換它們,然後使用原始正則表達式,並且只有在它不以___開頭時才匹配。

有什麼建議嗎?

回答

0

這將更好地在兩個步驟來完成,像這樣:

if ($url =~ /(?:(?:http|ftp):\/\/)?[^\s]+\.[a-z]{2,}[^\s]*/ && 
    $url !~ /www.example.com|http:\/\/example.com\/slash\/slah?hello=world/) 
{ 
    ... 
} 

(不知道你要在工作語言,這是Perl代碼)