正则表达式解析youtube链接

时间:2014-07-12 05:52:18

标签: regex vb.net url youtube

从youtube获取网址时,这些链接如下:

我需要使用Vb.net中的regex将其解析为如下所示

这意味着删除 watch? ,并在 {之后用 = 替换 / {1}}

对不起,我是regex的新手......

3 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式

^(http:\/\/(?:www\.)?(?:youtube)\.com\/)[^?]+\?(v)=(.*)$

在替换部分,请填写以下内容

$1$2/$3

DEMO

您可以使用lookbehind将.com/之后的字符与第一个=符号匹配。

(?<=\.com\/).*?=

在替换部分中,将匹配的字符替换为

v/

DEMO

答案 1 :(得分:1)

替换

/watch\?v=/

"v/"

示例:

img http://gyazo.com/dea11fd83f7282048ffcc5c41b7af5bb.png

View a live regex demo!


修改

  

这意味着删除手表?并替换= with / after v。

在这种情况下,请参阅以下正则表达式替换:

/watch?(v)=/

取代:

"$1/"

示例:

img http://gyazo.com/fc4f3bdb397d5c01920b8c917786eda8.png

View a live regex demo!

答案 2 :(得分:1)

正则表达式对此有些过分,你不需要使用它。简单的字符串替换就足够了。在C#中看起来像这样:

string url1 = "http://www.youtube.com/watch?v=oSyL8WMLSB8";
string url2 = url1.Replace("/watch?v=", "/v/");
// url2 => "http://www.youtube.com/v/oSyL8WMLSB8"

在vb.net中它看起来像这样:

Dim url1 As String = "http://www.youtube.com/watch?v=oSyL8WMLSB8"
Dim url2 As String = url1.Replace("/watch?v=", "/v/")
' url2 => "http://www.youtube.com/v/oSyL8WMLSB8"