2017-01-22 7 views
0

Regexを使用してこの文字列のすべての.mp4 URLを取得したいと思います。文字列のmp4を検索するための正規表現

また、Regexを使用して最後の.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}]}]"; 

答えて

0

2アプローチ:あなたはURLのは、常にhttps://と共に開始され、完全なURLが終了した後にmp4が含まれていないと確信している場合は

  1. 、あなたは使用することができます pattern = "https://.*mp4";

    String[] arr = { 
        "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}]}]" 
    }; 
    String pattern = "https://.*mp4"; 
    Pattern r = Pattern.compile(pattern); 
    
    for (String line : arr) { 
        Matcher m = r.matcher(line); 
        if (m.find()) { 
         System.out.println(m.group(0)); 
        } else { 
         System.out.println("NO MATCH"); 
        } 
    } 
    
  2. ない場合は、URLののすべてのタイプをサポートするが、その後少し修正してhere定義されているもの、

    String pattern = 
        "(((ht|f)tp(s?)\\:\\/\\/|~\\/|\\/)|www.)" + 
        "(\\w+:\\[email protected])?(([-\\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 
+0

またはアレイ。しかし、2番目のアプローチは完璧に感謝しています – user7453632

0

正規表現:

オプションの 'S' に続いて
https?.*?\.mp4 

リテラルhttp

s?

彼らはすべてHTTPSを使用する場合は疑問符を削除します。できるだけ少ない文字が続き

.*?

MP4の拡張子(リテラルドット)が続く私のURLが新しい行にはない1つの行の文字列であるため、最初のapproacheが動作しません\.mp4

関連する問題