我從youtube鏈接中提取YouTube視頻ID。該列表看起來像這樣獲取符號之間的字符串
http://www.youtube.com/watch?v=mmmc&feature=plcp
我只想得到MMMC。
我用.replaceAll?
我從youtube鏈接中提取YouTube視頻ID。該列表看起來像這樣獲取符號之間的字符串
http://www.youtube.com/watch?v=mmmc&feature=plcp
我只想得到MMMC。
我用.replaceAll?
編輯:現在我知道你在找什麼,我希望:
String url= "http://www.youtube.com/watch?v=mmmc&feature=plcp";
String search = "v=";
int index = url.indexOf(search);
int index2 = url.indexOf("&",index);
String found = url.substring(index+2,index2);
System.out.println(found);
方式三:
URL url = new URL("http://www.youtube.com/watch?v=mmmc&feature=plcp"); url.getQuery(); // return query string.
正則表達式 這裏http://www.vogella.com/articles/JavaRegularExpressions/article.html
例子記號化
String s = "http://www.youtube.com/watch?v=mmmc&feature=plcp";
String arr[] = s.split("=");
String arr1[] = arr[1].split("&");
System.out.println(arr1[0]);
這裏的(使用番石榴MapSplitter
)一個通用的解決方案:
public final class UrlUtil {
/**
* Query string splitter.
*/
private static final MapSplitter PARAMS_SPLITTER = Splitter.on('&').withKeyValueSeparator("=");
/**
* Get param value in provided url for provided param.
*
* @param url Url to use
* @param param Param to use
* @return param value or null.
*/
public static String getParamVal(String url, String param)
{
if (url.contains("?")) {
final String query = url.substring(url.indexOf('?') + 1);
return PARAMS_SPLITTER.split(query).get(param);
}
return null;
}
public static void main(final String[] args)
{
final String url = "http://www.youtube.com/watch?v=mmmc&feature=plcp";
System.out.println(getParamVal(url, "v"));
System.out.println(getParamVal(url, "feature"));
}
}
輸出:
mmmc
plcp
如果您想使用正則表達式,這可能是一個解決方案:
Pattern p = Pattern
.compile("http://www.youtube.com/watch\\?v=([\\s\\S]*?)\\&feature=plcp");
Matcher m = p.matcher(youtubeLink);
if (m.find()) {
return m.group(1);
}
else{
throw new IllegalArgumentException("invalid youtube link");
}
當然,這隻有在該功能將永遠是PLCP,如果不行,你可以簡單地刪除該部分或用wilcard替換它,就像我所做的一樣 - mmmc
檢查正則表達式 - 請參閱sun教程http://docs.oracle.com/javase/tutorial/essential/regex/index.html – Katana24
您是否嘗試過用request.getParameter( 「v」);在servlet中?它會直接給你mmmc。這是當然如果你使用servlets –
這是值得看看http://stackoverflow.com/questions/3452546/javascript-regex-how-to-get-youtube-video-id-from-url?rq=1,它已一些相當發達的JavaScript解決方案 – RoryB