Java 用于在字符串中查找mp4的正则表达式

Java 用于在字符串中查找mp4的正则表达式,java,regex,Java,Regex,我想使用正则表达式获取此字符串的所有.mp4 URL 我还想知道如何使用正则表达式只获取最后一个.mp4 URL 谢谢 contentType=application/x-mpegURL, url=https://video.twimg.com/amplify_video/822938952332144642/pl/BjHU8aBCbOgZNzXQ.m3u8}, Variant{bitrate=0, contentType=application/dash+xml, url=https://

我想使用正则表达式获取此字符串的所有.mp4 URL

我还想知道如何使用正则表达式只获取最后一个.mp4 URL

谢谢

contentType=application/x-mpegURL, url=https://video.twimg.com/amplify_video/822938952332144642/pl/BjHU8aBCbOgZNzXQ.m3u8}, 

Variant{bitrate=0, contentType=application/dash+xml, url=https://video.twimg.com/amplify_video/822938952332144642/pl/BjHU8aBCbOgZNzXQ.mpd}, 

Variant{bitrate=320000, contentType=video/mp4, url=https://video.twimg.com/amplify_video/822938952332144642/vid/320x180/YqZ72rzLj3VWVhy4.mp4}, 

Variant{bitrate=832000, contentType=video/mp4, url=https://video.twimg.com/amplify_video/822938952332144642/vid/640x360/A2vMgzo2ElpPP6TE.mp4}, 

Variant{bitrate=2176000, contentType=video/mp4, url=https://video.twimg.com/amplify_video/822938952332144642/vid/1280x720/j9xbNzRZqEbYs_2s.mp4}]}]";

2种方法:

https?.*?\.mp4
  • 如果您确定URL始终以
    https://
    开头,并且在完成完整URL后不包含
    mp4
    ,则可以使用
    pattern=“https://.*mp4”

  • 如果不支持,则支持所有类型的URL,然后稍加修改即可将模式更改为定义的模式

    String pattern = 
        "(((ht|f)tp(s?)\\:\\/\\/|~\\/|\\/)|www.)" + 
        "(\\w+:\\w+@)?(([-\\w]+\\.)+(com|org|net|gov" + 
        "|mil|biz|info|mobi|name|aero|jobs|museum" + 
        "|travel|[a-z]{2}))(:[\\d]{1,5})?" + 
        "(((\\/([-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|\\/)+|\\?|#)?" + 
        "((\\?([-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + 
        "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)" + 
        "(&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + 
        "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*" + 
        "(#([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?\\b"+"mp4";
    
  • 输出:

    NO MATCH
    NO MATCH
    https://video.twimg.com/amplify_video/822938952332144642/vid/320x180/YqZ72rzLj3VWVhy4.mp4
    https://video.twimg.com/amplify_video/822938952332144642/vid/640x360/A2vMgzo2ElpPP6TE.mp4
    https://video.twimg.com/amplify_video/822938952332144642/vid/1280x720/j9xbNzRZqEbYs_2s.mp4
    

    Regex:

    https?.*?\.mp4
    
    文字
    http

    后跟可选的“s”:
    s?

    如果他们都使用HTTPS,请删除问号

    后跟尽可能少的字符:
    *?


    然后是mp4扩展名(文字点)。mp4

    第一种方法不起作用,因为我的URL位于一个单行字符串中,而不是新行或数组中。但是第二种方法非常有效,这应该是公认的答案!但是,如果您可以提供更多关于如何在URL中排除某些字符串(如
    jpg
    )的信息,这将非常有用。i、 e.我不想匹配