我想驗證由用戶粘貼的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