如何使用 Java 中的正则表达式从 YouTube URL 获取视频 ID
问题描述:
从 javascript 答案移植到 Java 版本JavaScript REGEX:如何从网址?
Porting from javascript answer to Java version JavaScript REGEX: How do I get the YouTube video id from a URL?
答
认为这个问题不适用于 Java,以防万一您需要在 Java 中解决这个问题
Figured this question wasn't here for Java, in case you need to do it in Java here's a way
public static String extractYTId(String ytUrl) {
String vId = null;
Pattern pattern = Pattern.compile(
"^https?://.*(?:youtu.be/|v/|u/\\w/|embed/|watch?v=)([^#&?]*).*$",
Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(ytUrl);
if (matcher.matches()){
vId = matcher.group(1);
}
return vId;
}
适用于诸如(也适用于 https://...
)之类的网址
Works for URLs like (also for https://...
)
http://www.youtube.com/watch?v=0zM4nApSvMg&feature=feedrec_grec_index
http://www.youtube.com/user/SomeUser#p/a/u/1/QDK8U-VIH_o
http://www.youtube.com/v/0zM4nApSvMg?fs=1&hl=en_US&rel=0
http://www.youtube.com/watch?v=0zM4nApSvMg#t=0m10s
http://www.youtube.com/embed/0zM4nApSvMg?rel=0
http://www.youtube.com/watch?v=0zM4nApSvMg
http://youtu.be/0zM4nApSvMg