我想知道是否有人可以帮我解决正则表达式问题。我想写一个正则表达式来捕获类似于这个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
提前致谢! :)
答案 0 :(得分:1)
简短回答:
(?<=justin\.tv\/)([^#\/]+)
答案很长:
让我们把它分成几部分。先看看后面部分。
([^#\/]+)
将字符串分隔为不包含“#”或“/”的部分。 现在让我们看看第一部分。
(?<=justin\.tv\/)
语法“(?&lt; =”后跟“)”被称为正向后视(this page具有良好的示例并解释了不同类型的外观)。使用一个简单的例子:
(?<=A)B
上面的例子说“我希望所有'B'紧跟在'A'之后。”回到我们的一个很好的例子,我们说我们希望所有部分(由'#'或'/'分隔)紧跟在一个名为“justin.tv /".
的部分之后查看here以获取表达式的示例。
答案 1 :(得分:0)
@justin\.tv/([^#/]+)@
如果您希望所有内容都达到某个特定字符(-set),请使用否定类。 此外,在为url处理正则表达式时,使用/ as分隔符很容易出错,因为你必须转义所有的/。改用其他东西(比如@在这种情况下)