从youtube获取网址时,这些链接如下:
我需要使用Vb.net中的regex将其解析为如下所示
这意味着删除 watch?
,并在 {之后用 =
替换 /
{1}}
对不起,我是regex的新手......
答案 0 :(得分:2)
您可以使用以下正则表达式
^(http:\/\/(?:www\.)?(?:youtube)\.com\/)[^?]+\?(v)=(.*)$
在替换部分,请填写以下内容
$1$2/$3
或强>
您可以使用lookbehind将.com/
之后的字符与第一个=
符号匹配。
(?<=\.com\/).*?=
在替换部分中,将匹配的字符替换为
v/
答案 1 :(得分:1)
替换
/watch\?v=/
与
"v/"
示例:
img http://gyazo.com/dea11fd83f7282048ffcc5c41b7af5bb.png
修改强>
这意味着删除手表?并替换= with / after v。
在这种情况下,请参阅以下正则表达式替换:
/watch?(v)=/
取代:
"$1/"
示例:
答案 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"