2011-08-24 49 views
1

我一直在使用正則表達式資源管理器,但我仍然無法想出正確的模式。正則表達式

這裏是我的網址:

http://pie.crust.com:18000/TEST/TEST.html 

這裏是我的正則表達式:

/[^http:\/\/][\w-\W]+[\/]/ 

,輸出是:

ie.crust.com:18000/TEST/ 

所有我想要的是域(基本上是所有插圖中//和/):

pie.crust.com:18000 

我錯過了什麼?我無法弄清楚。有任何想法嗎?

預先感謝您。

+0

使用\ w和\ W的問題是,第一個說:「任何單詞字符」,而第二個說:「任何非文字字符」基本上說的任何字符。另外,你的+是貪婪的,因爲\ W包含\(一個文字反斜槓),所以它想把文件夾包含在路徑中,如果你使用+(或*)來跟蹤?那麼它意味着不要貪婪並選擇將驗證正則表達式的最小字符數。 –

+0

謝謝你的解釋。我不知道爲什麼它包含路徑中的文件夾。 – fumeng

回答

2

[^http:\/\/]部分與[^htp:\/]相同,只是列舉了所有不應該出現在結果字符串開始部分的字符,因此對於http://pie.crust.com:18000/TEST/TEST.htmlhttp://p匹配此枚舉。我建議你下面的表達式:

/http:\/\/([^\/]+)\/.*/ 

可以使用String.replace()方式如下:

var myUrl:String = "http://pie.crust.com:18000/TEST/TEST.html"; 
var refinedUrl:String = myUrl.replace(/http:\/\/([^\/]+)\/.*/, "$1"); 
+0

謝謝,這個工作完美。 – fumeng

+0

不客氣:) – Constantiner

3

試試這個:http:\/\/([^\/]+)

1

試試這個:

@http://+(.*?)/@ 

(你的正則表達式沒有開始與結束/ - 它更容易使用別的東西,是不是在你的搜索字符串

1

(?<=http:\/\/)[a-zA-Z.:0-9-]+

「餡餅」 中的P被匹配的HTTP規則的一部分,所以不包括在內。使用積極的後顧之憂確定了這一點。

http://regexr.com?2uhjf

+0

謝謝你的鏈接。我正在使用不同的RegEx生成器,但這個很好。 – fumeng

0
try this... 
//http:\/\/([^\/]+)\/.***/