2013-08-01 45 views
-3

我想知道是否有人可以幫我解決正則表達式問題。我想寫一個正則表達式捕捉類似這樣的URL網址:請正則表達式請求

www.justin.tv/channel_name_here 

我曾嘗試:

/justin\.tv\/(.*) 

我得到的問題是,當這個頻道上線,有時URL轉變成像這樣:

www.justin.tv/channel_name_here#/w/45365675688 

我不能抓住這個。 :(任何人可以幫我這個我只是想趕上頻道名稱不英鎊符號和URL的其餘

下面是一些例子網址:。

www.justin.tv/winning_movies#/w/6347562128 
http://www.justin.tv/cine_accion_hd16#/w/6347562128/18 
http://www.justin.tv/fox_movies_hd1/ 

我會想得到:

winning_movies 
cine_accion_hd16 
fox_movies_hd1 

感謝提前:)

回答

1

簡短的回答:

(?<=justin\.tv\/)([^#\/]+) 

長答案:

讓我們把它分成幾部分。先看後面的部分。

([^#\/]+) 

這會將字符串劃分爲不包含'#'或'/'的部分。現在讓我們看看第一部分。

(?<=justin\.tv\/) 

的語法「(?< =」後面「)」被稱爲正回顧後(this page具有良好的實施例和不同類型的環視的解釋)。使用一個簡單的例子:

(?<=A)B 

上面的例子說:「我想所有'B'緊接在'A'之後。以我們的一個大例子來說,我們說我們需要在之後立即使用的所有部分(用'#'或'/'分隔)稱爲「justin.tv/」。

查看here查看錶達式的例子。

+0

非常感謝你,這正是我所尋找的,也是爲解釋代碼而感謝。 – carlosmtx

+0

不客氣,@ carlosmtx。 – Xynariz

0
@justin\.tv/([^#/]+)@ 

如果您希望一切達到特定字符(-set),請使用否定類。 另外,當使用urls的正則表達式時,使用/ as分隔符很容易出錯,因爲你必須轉義所有的/。使用其他的東西(比如@在這種情況下)

+0

感謝您的回答,我接受了Xynariz的回答 – carlosmtx