1

URLからビデオIDを抽出しようとしています

http://www.youtube.com/v/Ig1WxMI9bxQ&hl=fr&fs=1&color1=0x2b405b&color2=0x6b8ab6

私が使用するものはPattern.compile("/v/([^&]*)")nullになり、使用するとPattern.compile("/v/([^/]*)")次の出力が得られますIg1WxMI9bxQ&hl = fr&fs = 1&color1 = 0x2b405b&color2 = 0x6b8ab6

どうすれば一人で抽出できますかIg1WxMI9bxQ

4

4 に答える 4

1

使用できるIDを見つけるには:

String url = "http://www.youtube.com/v/Ig1WxMI9bxQ&hl=fr&fs=1&color1=0x2b405b&color2=0x6b8ab6";
Matcher matcher = Pattern.compile(".*/(.*?)=.*").matcher(url);
if (matcher.matches()) {
   System.out.println(matcher.group(1));
}
于 2012-07-27T09:48:30.247 に答える
0
import java.util.regex.*;

class Main
{
  public static void main(String[] args)
  {
    String txt="http://www.youtube.com/v/Ig1WxMI9bxQ&hl=fr&fs=1&color1=0x2b405b&color2=0x6b8ab6";

    String re1=".*?";   // Non-greedy match on filler
    String re2="(?:[a-z][a-z0-9_]*)";   // Uninteresting: var
    String re3=".*?";   // Non-greedy match on filler
    String re4="(?:[a-z][a-z0-9_]*)";   // Uninteresting: var
    String re5=".*?";   // Non-greedy match on filler
    String re6="(?:[a-z][a-z0-9_]*)";   // Uninteresting: var
    String re7=".*?";   // Non-greedy match on filler
    String re8="(?:[a-z][a-z0-9_]*)";   // Uninteresting: var
    String re9=".*?";   // Non-greedy match on filler
    String re10="(?:[a-z][a-z0-9_]*)";  // Uninteresting: var
    String re11=".*?";  // Non-greedy match on filler
    String re12="((?:[a-z][a-z0-9_]*))";    // Variable Name 1

    Pattern p = Pattern.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9+re10+re11+re12,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = p.matcher(txt);
    if (m.find())
    {
        String var1=m.group(1);
        System.out.print("("+var1.toString()+")"+"\n");
    }
  }
}

txt2re.comを使用して、すべての正規表現のニーズに対応できます(:確認する価値があります。言うまでもありませんが、もちろん、取得するソースを単純化することができます。

于 2012-07-27T09:47:46.353 に答える
0

試す:

String url = http://www.youtube.com/v/Ig1WxMI9bxQ&hl=fr&fs=1&color1=0x2b405b&color2=0x6b8ab6
String id = url.substring(url.indexOf("/v/") + 3, url.indexOf("&"));
于 2012-07-27T09:48:30.857 に答える
0
String link = "http://www.youtube.com/v/Ig1WxMI9bxQ&hl=fr&fs=1&color1=0x2b405b&color2=0x6b8ab6";
Pattern rex = Pattern.compile("(?<=watch\\?v=|/videos/)[^&#]*");
Matcher m = rex.matcher(link);
String YouTubeVideoID = m.group();
于 2012-07-27T09:52:17.567 に答える