Android/Java:检查url是否为有效的youtube url [英] Android / Java: Check if url is valid youtube url

查看:71
本文介绍了Android/Java:检查url是否为有效的youtube url的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想检查某个网址是否为有效的youtube网址,以便可以在视图中显示,否则我将隐藏该视图.

I want to check if an url is valid youtube url so that I can shown in view otherwise I will hide the view.

Java中是否有任何正则表达式可以帮助我检查url是否有效.目前,我正在使用此正则表达式,但我想它不是我想要的:

Is there any regular expression in Java that can help me to check if url is valid. Currently I am using this regex but I guess it's not the one I want:

String youTubeURl = "https://www.youtube.com/watch?v=Btr8uOU0BkI";
String pattern = "https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube\\.com\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w]*";
 if (!youTubeURl.isEmpty() && youTubeURl.matches(pattern)) {
              /// Valid youtube URL
  }
 else{
   // Not Valid youtube URL
}

推荐答案

这对我有用.

public static boolean isYoutubeUrl(String youTubeURl)
{
       boolean success;
       String pattern = "^(http(s)?:\\/\\/)?((w){3}.)?youtu(be|.be)?(\\.com)?\\/.+";
       if (!youTubeURl.isEmpty() && youTubeURl.matches(pattern))
       {
           success = true;
       }
       else
       {
           // Not Valid youtube URL
           success = false;
       }
       return success;
  }

如果要检索Youtube videoId,可以使用以下功能.

If you want to retrieve the Youtube videoId you can use the following function.

public static String getVideoIdFromYoutubeUrl(String youtubeUrl)
{
       /*
           Possibile Youtube urls.
           http://www.youtube.com/watch?v=WK0YhfKqdaI
           http://www.youtube.com/embed/WK0YhfKqdaI
           http://www.youtube.com/v/WK0YhfKqdaI
           http://www.youtube-nocookie.com/v/WK0YhfKqdaI?version=3&hl=en_US&rel=0
           http://www.youtube.com/watch?v=WK0YhfKqdaI
           http://www.youtube.com/watch?feature=player_embedded&v=WK0YhfKqdaI
           http://www.youtube.com/e/WK0YhfKqdaI
           http://youtu.be/WK0YhfKqdaI
        */
       String pattern = "(?<=watch\\?v=|/videos/|embed\\/|youtu.be\\/|\\/v\\/|\\/e\\/|watch\\?v%3D|watch\\?feature=player_embedded&v=|%2Fvideos%2F|embed%\u200C\u200B2F|youtu.be%2F|%2Fv%2F)[^#\\&\\?\\n]*";
       Pattern compiledPattern = Pattern.compile(pattern);
       //url is youtube url for which you want to extract the id.
       Matcher matcher = compiledPattern.matcher(youtubeUrl);
       if (matcher.find()) {
           return matcher.group();
       }
       return null;
}

这篇关于Android/Java:检查url是否为有效的youtube url的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆