2012-07-27 67 views
1

我試圖從URL中提取視頻ID值正則表達式的問題與提取的路徑從URL

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

我用什麼Pattern.compile("/v/([^&]*)")我得到空, 如果我使用Pattern.compile("/v/([^/]*)")我得到下面的輸出 Ig1WxMI9bxQ & HL = FR & FS = 1 & COLOR1 = 0x2b405b & COLOR2 = 0x6b8ab6

我怎樣才能提取單獨Ig1WxMI9bxQ

+0

看在這個解決方案:http://stackoverflow.com/questions/7894727/youtube-complete-java-regex – 2012-07-27 09:47:57

回答

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)); 
} 
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您所有的需求正則表達式(:它值得檢查無用提,但ofcourse你可以簡化你的源

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("&")); 
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();