正则表达式C# - 匹配任何YouTube.com URI

时间:2013-10-20 17:18:08

标签: c# regex youtube


如果给定的URI是YouTube网站的页面,我需要查看C#。

string theUri = "http://www.youtube.com/watch?v=B4N_CliHGUk&feature=player_embedded";
bool isYoutube = Regex.IsMatch(theUri.ToString(), @"/https?:\/\/(www\.)?(youtube\.com|youtu\.be|youtube-nocookie\.com).*/i");

正则表达式并不复杂,应该没有问题:

https?:\/\/(?:www\.)?(?:youtube\.com|youtu\.be|youtube-nocookie\.com).+

Regular expression visualization

Debuggex Demo

但它不起作用;使用像isYouTube

这样的简单URI,http://www.youtube.com/watch?v=KeC4NKDVl70&feature=player_embedded bool为false

我哪里错了?谢谢

1 个答案:

答案 0 :(得分:3)

var youtubeHosts=new string[]{"youtube","youtube-nocookie","youtu.be"};
Uri uri=new Uri(path);
bool isValid=youtubeHosts.Any(x=>uri.Host==x);