我想验证视频链接网址。特别是,验证共享链接网址与嵌入视频SRC的URL。我的当前正则表达式看起来像这样,以验证两种不同类型的视频的URL从vimeo.com:
^(?i)(http[s]?:\/\/)?(w{3}\.)?(?'gp1'player\.)vimeo\.com\/(?(k'gp1')video\/|())(?((\w)+\/?$
我试图使用相同的正则表达式来验证以下网址(点击下面的链接是假的,所以不要点击它们):
我似乎无法获得正则表达式这两种情况下工作,想一个正则表达式,如果能够测试这两种情况。
由于提前。
编辑: 谢谢dtb的帖子。看来,如果用户传入了无效的url,正则表达式仍然会通过: 例如,如果用户意外提供http://player.vimeo.com/123FEDSE而不是有效http://player.vimeo.com/video/123FEDSE,则会通过正则表达式验证。我正在尝试使用正则表达式来验证URL,以确保它的格式正确。
有没有办法检查以前的捕获组是否存在?
谢谢!
答案 0 :(得分:2)
检查
Match match = Regex.Match(input, pattern);
if(match.Success) {
//do something
}
答案 1 :(得分:0)
.NET正则表达式语言与正则表达式编写的语言略有不同。
以下是近似值:
string url1 = "http://www.vimeo.com/123FEDSE";
string url2 = "http://player.vimeo.com/video/123FEDSE";
string pattern = @"^(https?://)?(www\.)?(player\.)?vimeo\.com/(video/)?(\w)+/?$";
bool result1 = Regex.IsMatch(url1, pattern, RegexOptions.IgnoreCase);
bool result2 = Regex.IsMatch(url2, pattern, RegexOptions.IgnoreCase);
答案 2 :(得分:0)
^http://[^<>'"]*?vimeo.com/[^"'<>]*?$
答案 3 :(得分:0)
^(http[s]?://)?(w{3}\.)?(player\.)?vimeo\.com/(video/)?(\w)+/?$