正则表达式的问题与提取的路径从URL
问题描述:
我试图从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
。
答
要找到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));
}
答
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你可以简化你的源
答
尝试:
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("&"));
答
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();
看在这个解决方案:http://stackoverflow.com/questions/7894727/youtube-complete-java-regex – 2012-07-27 09:47:57