C# 无法将组从Regex中取出

C# 无法将组从Regex中取出,c#,regex,C#,Regex,下面的代码只返回“干得好!”如何从中获取实际的URL?我在给定的网站上遵循了教程,但我仍然有点难以理解它。此外,我认为这不是处理regex(将regex与html混合)的最佳方式。有没有一种简单的方法可以基于CSS类捕获文本 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; usi

下面的代码只返回“干得好!”如何从中获取实际的URL?我在给定的网站上遵循了教程,但我仍然有点难以理解它。此外,我认为这不是处理regex(将regex与html混合)的最佳方式。有没有一种简单的方法可以基于CSS类捕获文本

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;



namespace Scraper
{
    class Program
    {
        static void Main(string[] args)
        {
            string target = @"http://www.omegacoder.com/?p=58";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(target);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Regex URL  = new Regex("(?:href=)(?<link>.*?)");

            string line;
            using (Stream responseStream = response.GetResponseStream())
            using (StreamReader htmlStream = new StreamReader(responseStream))
                while ((line = htmlStream.ReadLine()) != null){

                    Match m = URL.Match(line);

            if (m.Success) {
                Console.WriteLine("Good job! " + URL.Match(line) + m.Groups[0].Value + m.Groups[1].Value + m.Groups["link"]);
                Console.ReadLine();
            } else {

            }

                }  
                /*    if (Regex.IsMatch(line, "XXXXX")) 
                            Console.WriteLine(line);
                } */
            Console.ReadLine();

        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
Net系统;
使用System.IO;
使用System.Text.RegularExpressions;
名称空间刮刀
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串目标=@“http://www.omegacoder.com/?p=58";
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(目标);
HttpWebResponse=(HttpWebResponse)request.GetResponse();
正则表达式URL=新正则表达式((?:href=)(?*?);
弦线;
使用(Stream responseStream=response.GetResponseStream())
使用(StreamReader htmlStream=新StreamReader(responseStream))
而((line=htmlStream.ReadLine())!=null){
Match m=URL.Match(行);
如果(m.成功){
Console.WriteLine(“干得好!”+URL.Match(line)+m.Groups[0]。Value+m.Groups[1]。Value+m.Groups[“link]”);
Console.ReadLine();
}否则{
}
}  
/*if(Regex.IsMatch(第“XXXXX”行)
控制台写入线(行);
} */
Console.ReadLine();
}
}
}
您应该使用
(?:href=)(?\S*)


\S
匹配的字符不是空格

您想用
css
类做什么!您的代码正在执行其他操作..是否需要href或具有特定css类的文本抱歉。我想从网站上搜刮食谱。我发现有一个网站将名称/成分/方法分为不同的类别。这就是我想在我自己的数据库中存储它的方式。你能更具体地说明你想要什么吗..在我进入之前,那些
不同的类是什么?我希望我能从网站上删除基本的URL。目前为止,此程序只返回“Good job!href=”over and overyou better use
(?:href=)(?\S*)
并且它应该是
m.Groups[“link”]。Value