2011-03-27 128 views
1

我正在尋找從URL中提取字符串。這裏是一個例子來說明我在找什麼。從URL中提取字符串的正則表達式

輸入網址:http://www.nba.com/bulls/stats/ 輸出:多頭

換句話說,我希望能夠提取的倒數第二個和最後一個「/」在URL之間的字符串。我知道我可以通過「/」來分割並提取上一個第二個術語,但是我正在尋找一個更清潔的正則表達式解決方案。

任何想法?

+1

我不神交正則表達式和你的字符串拆分選項似乎很簡單的對我說:'頭(尾(不公開(strsplit(URL, 「/」)),2) ,1)' – Chase 2011-03-28 02:04:39

+0

倒數第二個和最後一個之間的字符串是stats,而不是公牛。你的意思是你想要第三個倒數第二個倒數/? – 2011-03-28 03:35:44

+0

是的。我的意思是第三倒數第二倒數 – Ramnath 2011-03-31 14:05:14

回答

3

試試這個:

http://[^/]+/([^/]+)/[^/]+/? 
1

下面的正則表達式可以做的工作

http[s]?://[\w\.]+/(\w+)/.* 
+0

我可能是指http [s]?而不是http [s] * – Max 2011-03-27 23:20:25

+0

如果字符串中有任何特殊字符(如'-'或'%'),則不匹配。我不確定這是否相關。 – 2011-03-27 23:20:34

+0

爲什麼不簡單地使用「https?://'? – Czechnology 2011-03-27 23:32:17

1

如果必須通過正則表達式做到這一點,你可以簡單地這樣做(假設JavaScript的風格正則表達式語法):

/\/([^\/]*)\/[^\/]*\/$/ 

爲求使它更容易理解,NET版本將是這樣的:

@"/([^/]*)/[^/]*/$" 

但是,我認爲的想法拆分/確實是這樣做的正確方法。