请正则表达式url请求

时间:2013-08-01 22:54:17

标签: regex url justin.tv

我想知道是否有人可以帮我解决正则表达式问题。我想写一个正则表达式来捕获类似于这个URL的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

提前致谢! :)

2 个答案:

答案 0 :(得分:1)

简短回答:

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

答案很长:

让我们把它分成几部分。先看看后面部分。

([^#\/]+)

将字符串分隔为不包含“#”或“/”的部分。 现在让我们看看第一部分。

(?<=justin\.tv\/)

语法“(?&lt; =”后跟“)”被称为正向后视(this page具有良好的示例并解释了不同类型的外观)。使用一个简单的例子:

(?<=A)B

上面的例子说“我希望所有'B'紧跟在'A'之后。”回到我们的一个很好的例子,我们说我们希望所有部分(由'#'或'/'分隔)紧跟在一个名为“justin.tv /".

的部分之后

查看here以获取表达式的示例。

答案 1 :(得分:0)

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

如果您希望所有内容都达到某个特定字符(-set),请使用否定类。 此外,在为url处理正则表达式时,使用/ as分隔符很容易出错,因为你必须转义所有的/。改用其他东西(比如@在这种情况下)