C#使用Regex从页面源查找youtube视频ID

C#使用Regex从页面源查找youtube视频ID,c#,regex,C#,Regex,我正在尝试从播放列表源中查找所有youtube视频ID。但我对正则表达式不太熟悉,所以对我来说很难 这是我当前的代码: Console.Write("Playlist? Ex: \"PLaJlh8L9CwotfVy6fAtlphD_JD6IgSTMx\": "); string playlist = Console.ReadLine(); string source = client.DownloadString("http://www.youtube.com/p

我正在尝试从播放列表源中查找所有youtube视频ID。但我对正则表达式不太熟悉,所以对我来说很难

这是我当前的代码:

Console.Write("Playlist? Ex: \"PLaJlh8L9CwotfVy6fAtlphD_JD6IgSTMx\": ");
        string playlist = Console.ReadLine();
        string source = client.DownloadString("http://www.youtube.com/playlist?list=" + playlist);

        Regex reg = new Regex(".*?href=\"/watch\\?v=(?<vid>.+?)&amp;list="+ playlist);
        MatchCollection mc1 = reg.Matches(source);
        foreach (Match m in mc1)
        {
            string vid = m.Groups["vid"].Value;
            Console.WriteLine(m);
            Console.ReadLine();
        }
Console.Write(“播放列表”例如:“PLaJlh8L9CwotfVy6fAtlphD\u JD6IgSTMx\”:”;
string playlist=Console.ReadLine();
字符串源=客户端。下载字符串(“http://www.youtube.com/playlist?list=“+播放列表);
Regex reg=new Regex(“.*?href=\”/watch\\?v=(?。+?)&;list=“+播放列表);
MatchCollection mc1=reg.Matches(源);
foreach(在mc1中匹配m)
{
字符串vid=m.Groups[“vid”].值;
控制台写入线(m);
Console.ReadLine();
}
我希望它在源中循环并显示在源中找到的每个视频ID。视频ID的示例是“”中的“EzuvVs953Gs”


到目前为止,它确实显示了包含视频ID的所有内容,但它显示了整行内容。我希望它只显示ID。我还希望它能够检查是否已经找到ID。如果找到了,它将跳到新的ID,这样它就不会多次显示它。

您正在编写整个匹配对象。而不是
Console.WriteLine(m);
使用
控制台。WriteLine(vid);

vid
是具有视频id的组的值


注意:正则表达式不是解析html的最佳方法。我建议您使用一些库,如。

我甚至没有注意到。这是一个多么简单的修复方法。谢谢。为什么所有专业程序员都建议“不要使用正则表达式解析html?”"? 怎么了?我喜欢正则表达式,总是使用它,一切都很好。。有什么特别的原因吗?用正则表达式解析整个文档比解析html要慢。如果它与注释标记或属性内部的内容匹配,则可能会出现误报。@Shafizadeh和