如何使用java中的正则表达式从移动浏览器中的YouTube url获取视频id

如何使用java中的正则表达式从移动浏览器中的YouTube url获取视频id,java,regex,url,video,youtube,Java,Regex,Url,Video,Youtube,我需要获得YouTube url的视频id,如下所示。 我提到了,但我找不到解决办法 非常感谢您的帮助。试试这个正则表达式: v=([^\s&#]*) 说明: v=字面上与v匹配= ()捕获组,在本例中为组1,我希望获取其值 在这里捕获 [^\s&#]*匹配所有内容,除非有空格或&或&是必要的,因为 版本id可能不是最后一个参数是必需的,因为#可以用作url中的书签 你可以试试: final String regex = "v=([^\\s&#]*)"; fi

我需要获得YouTube url的视频id,如下所示。 我提到了,但我找不到解决办法

非常感谢您的帮助。

试试这个正则表达式:

v=([^\s&#]*)

说明:

  • v=
    字面上与v匹配=
  • ()
    捕获组,在本例中为组1,我希望获取其值 在这里捕获
  • [^\s&#]*
    匹配所有内容,除非有空格或&或&是必要的,因为 版本id可能不是最后一个参数是必需的,因为#可以用作url中的书签
  • 你可以试试:

        final String regex = "v=([^\\s&#]*)";
        final String string = " https://m.youtube.com/watch?v=9tg3csrFVJw";
        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(string);
    
        if(matcher.find()) {
            System.out.println(matcher.group(1));
        }
    
    您可以使用

    val regex =
            "^((?:https?:)?//)?((?:www|m)\\.)?((?:youtube\\.com|youtu.be|youtube-nocookie.com))(/(?:[\\w\\-]+\\?v=|feature=|watch\\?|e/|embed/|v/)?)([\\w\\-]+)(\\S+)?\$"