我想验证由用户粘贴的url
为的Youtube & Vimeo的正则表达式的Youtube和Vimoe网址
如:
m.youtube.com, youtu.be, youtube.com, vimeo.com
也想从他们
提取video id's
我的代码:
if (link.contains("youtu")) {
String youtubeRegex = "^(http(s)??\\:\\/\\/)?((www\\.)|(m\\.))?((youtube\\.com\\/watch\\?v=)|(youtu.be\\/))([a-zA-Z0-9\\-_])+";
Pattern pattern = Pattern.compile(youtubeRegex);
Matcher matcher = pattern.matcher(link);
if (matcher.find()) {
isValid = true;
} else {
isValid = false;
}
} else if (link.contains("vimeo")) {
String vimeoRegex = "^https:\\/\\/?vimeo\\.com\\/(clip\\:)?(\\d+).*$";
Pattern pattern = Pattern.compile(vimeoRegex);
Matcher matcher = pattern.matcher(link);
if (matcher.find()) {
isValid = true;
} else {
isValid = false;
}
}
此正则表达式不工作properly.It接受不https ot http
你的第一个正则表达式包围HTTP部分在捕获组'()'后跟一个'?',这使得可选。所以如果你不想要那些没有协议,我建议删除'?' – LukStorms