2011-03-18 141 views
1

我如何修剪YouTube網址,因此它只返回視頻ID,例如http://www.youtube.com/watch?v=VPqTW-9U9nU。我將如何返回VPqTW-9U9nU。這必須針對多個輸入的網址。我想使用正則表達式,但我根本不理解它。因此,如果有人有正則表達式的解決方案可能會在你升技解釋更多的細節:)修剪網址字符串。 c#

+0

答案:正則表達式的方式http://stackoverflow.com/questions/1773822/get-youtube-video-id-from-html-code-with-php/ 1773972#1773972 – 2011-03-18 18:51:09

+0

這個問題更多關於解析URL與修剪它 – 2011-03-18 18:52:32

+0

我會推薦我對一個相關問題的回答:http://stackoverflow.com/questions/1773822/get-youtube-video-id-from-html -code與 - PHP/1773972#1773972。還要注意的是,自從我寫這些以來,YouTube添加了他們的URL縮短器,它提供了形式爲'http:// youtu.be/videoid'的URL。我使用了一個單獨的正則表達式:'http://youtu.be/(? [A-Za-z0-9 _-] {11})' – 2011-03-18 23:06:49

回答

2

沒有在這種情況下,需要正則表達式:

string url = "http://www.youtube.com/watch?v=VPqTW-9U9nU"; 
string videoId = url.Substring(url.IndexOf("?v=") + 3); 
+0

+1,但只有當v始終是最後一個變量網址。否則就需要更多的東西。 – BinaryTox1n 2011-03-18 18:49:12

1

爲什麼不堅持用簡單的東西?

string youTubeUrl = "http://www.youtube.com/watch?v=VPqTW-9U9nU"; 
string id = youTubeUrl.Replace("http://www.youtube.com/watch?v=", String.Empty); 

正則表達式很方便,但有時候會矯枉過正,當你在不需要它們的地方使用它們時,會使你的代碼更難理解。

13

沒有做任何字符串操作,您可以使用UriParseQueryString

Uri uri = new Uri("http://www.youtube.com/watch?v=VPqTW-9U9nU"); 
var s = HttpUtility.ParseQueryString(uri.Query).Get("v"); 
+1

+1 - 這是針對此問題的更強大的解決方案 – BrokenGlass 2011-03-18 18:50:51

+1

+1,用於推薦使用現有工具 – 2011-03-18 18:51:20

0

嘗試是這樣的:

string url = "http://www.youtube.com/watch?v=VPqTW-9U9nU"; 
string video_id = url.Substring(0,url.LastIndexOf("=')+1); 

其他的答案看起來正確,太。

0

您也可以使用String.Split()

url.Split(new[] { '=' }, 2)[1] 
+2

我祈禱不會是那種不得不維護它的人。 – Snowbear 2011-03-18 19:35:24