情况一:
<META NAME="description" CONTENT="华尔街债券(bond.wswire.com)是全球第一债券网站,为您提供全球债券市场最迅速最专业的债券资讯和全天候的债券理财、债券评级及报价服务,华尔街债券覆盖交易所债券市场、银行间债券市场、银行同业拆借及公开市场等各方面的债券信息服务。华尔街债券汇聚多家顶级专业机构分析研究报告、每日两次的精确数据分析以及图文并茂的市况报道。"><META NAME="keywords" CONTENT="华尔街,电讯,华尔街电讯,全球债券,国债,债券,债市,企业债,企债,可转债,回购,正回购,赎回,债券公告,利率,金融债,央行,短期融资券,记账式国债,货币政策,财经,汇率,票据,公开市场,稳定收益,公债,柜台交易,银行间债市,同业拆借,债券资讯,融资债,债券理财,债券评级,银行间市场,交易所市场,海外市场,央行票据">情况二:<meta name=keywords content="微波炉使用高火档能耗低更节能(图),环保新知,,,微波炉,,,高火,,,节能,,,省电,,"><meta name=description content="微波炉使用高火档能耗低更节能(图)">
注意:可能大小写,还有就是name,和content属性位置不一样小弟试着写了一下,只能匹配一写网页,不知道有什么问题。大牛请解答,拜谢!keyword:1."/<meta[\s] name=['\"]keywords['\"] content=['\"](.*)['\"]/isU"
2."/<meta[\s] content=['\"](.*)['\"] name=['\"]keywords['\"]/isU"
description:
1./<meta[\s]+name=['\"]description['\"] content=['\"](.*)['\"]/isU
2./<meta[\s]+content=['\"](.*)['\"] name=['\"]description['\"]/isU

解决方案 »

  1.   

                string str = @"<META NAME=""description"" CONTENT=""华尔街债券(bond.wswire.com)是全球第一债券网站,为您提供全球债券市场最迅速最专业的债券资讯和全天候的债券理财、债券评级及报价服务,华尔街债券覆盖交易所债券市场、银行间债券市场、银行同业拆借及公开市场等各方面的债券信息服务。华尔街债券汇聚多家顶级专业机构分析研究报告、每日两次的精确数据分析以及图文并茂的市况报道。"">
                        <META NAME=""keywords"" CONTENT=""华尔街,电讯,华尔街电讯,全球债券,国债,债券,债市,企业债,企债,可转债,回购,正回购,赎回,债券公告,利率,金融债,央行,短期融资券,记账式国债,货币政策,财经,汇率,票据,公开市场,稳定收益,公债,柜台交易,银行间债市,同业拆借,债券资讯,融资债,债券理财,债券评级,银行间市场,交易所市场,海外市场,央行票据"">";
                Regex reg =new Regex(@"(?is)<meta[^>]*?name=(['""\s]?)(?<name>[^'""\s]+)\1[^>]*?content=(['""\s]?)(?<content>[^'""\s]+)\2[^>]*?>");
                foreach(Match m in reg.Matches(str))
                    Response.Write(m.Groups["name"].Value+"<br/>"+m.Groups["content"].Value+"<br/>");            string str2 = @"<meta name=keywords content=""微波炉使用高火档能耗低更节能(图),环保新知,,,微波炉,,,高火,,,节能,,,省电,,"">
                                <meta name=description content=""微波炉使用高火档能耗低更节能(图)"">";
                foreach (Match m in reg.Matches(str2))
                    Response.Write(m.Groups["name"].Value + "<br/>" + m.Groups["content"].Value + "<br/>");
    /*
    description
    华尔街债券(bond.wswire.com)是全球第一债券网站,为您提供全球债券市场最迅速最专业的债券资讯和全天候的债券理财、债券评级及报价服务,华尔街债券覆盖交易所债券市场、银行间债券市场、银行同业拆借及公开市场等各方面的债券信息服务。华尔街债券汇聚多家顶级专业机构分析研究报告、每日两次的精确数据分析以及图文并茂的市况报道。
    keywords
    华尔街,电讯,华尔街电讯,全球债券,国债,债券,债市,企业债,企债,可转债,回购,正回购,赎回,债券公告,利率,金融债,央行,短期融资券,记账式国债,货币政策,财经,汇率,票据,公开市场,稳定收益,公债,柜台交易,银行间债市,同业拆借,债券资讯,融资债,债券理财,债券评级,银行间市场,交易所市场,海外市场,央行票据
    keywords
    微波炉使用高火档能耗低更节能(图),环保新知,,,微波炉,,,高火,,,节能,,,省电,,
    description
    微波炉使用高火档能耗低更节能(图)
    */
      

  2.   

    (?i)<meta[^>]*?name=(['"\s]?)(?<name>[^'"\s]+)\1[^>]*?content=(['"\s]?)(?<content>[^'"\s]+)\2[^>]*>
      

  3.   

    <META[^>]*NAME=("description"|'description'|description)[^>]*CONTENT="([^"]*)">keywords的类似~
      

  4.   


    void Main()
    {
     string str = @"<META NAME=""description"" CONTENT=""华尔街债券(bond.wswire.com)是全球第一债券网站,为您提供全球债券市场最迅速最专业的债券资讯和全天候的债券理财、债券评级及报价服务,华尔街债券覆盖交易所债券市场、银行间债券市场、银行同业拆借及公开市场等各方面的债券信息服务。华尔街债券汇聚多家顶级专业机构分析研究报告、每日两次的精确数据分析以及图文并茂的市况报道。"">
    <META NAME=""keywords"" CONTENT=""华尔街,电讯,华尔街电讯,全球债券,国债,债券,债市,企业债,企债,可转债,回购,正回购,赎回,债券公告,利率,金融债,央行,短期融资券,记账式国债,货币政策,财经,汇率,票据,公开市场,稳定收益,公债,柜台交易,银行间债市,同业拆借,债券资讯,融资债,债券理财,债券评级,银行间市场,交易所市场,海外市场,央行票据"">
    <meta name=keywords content=""微波炉使用高火档能耗低更节能(图),环保新知,,,微波炉,,,高火,,,节能,,,省电,,"">
    <meta name=description content=""微波炉使用高火档能耗低更节能(图)"">";
    Regex reg =new Regex(@"(?i)<meta[^>]*?name=(['""\s]?)(?<name>[^'""\s]+)\1[^>]*?content=(['""\s]?)(?<content>[^'""\s]+)\2[^>]*>");
    foreach(Match m in reg.Matches(str))
    Console.WriteLine(m.Groups["name"].Value+"\t"+m.Groups["content"].Value);
       /*
       description 华尔街债券(bond.wswire.com)是全球第一债券网站,为您提供全球债券市场最迅速最专业的债券资讯和全天候的债券理财、债券评级及报价服务,华尔街债券覆盖交易所债券市场、银行间债券市场、银行同业拆借及公开市场等各方面的债券信息服务。华尔街债券汇聚多家顶级专业机构分析研究报告、每日两次的精确数据分析以及图文并茂的市况报道。
    keywords 华尔街,电讯,华尔街电讯,全球债券,国债,债券,债市,企业债,企债,可转债,回购,正回购,赎回,债券公告,利率,金融债,央行,短期融资券,记账式国债,货币政策,财经,汇率,票据,公开市场,稳定收益,公债,柜台交易,银行间债市,同业拆借,债券资讯,融资债,债券理财,债券评级,银行间市场,交易所市场,海外市场,央行票据
    keywords 微波炉使用高火档能耗低更节能(图),环保新知,,,微波炉,,,高火,,,节能,,,省电,,
    description 微波炉使用高火档能耗低更节能(图)   */
     
    }
      

  5.   

    huangwenquan123 和q107770540 这两位老兄代码咋都一样呀?呵呵,不过谁能帮我看看,我的正则哪里有问题?
      

  6.   


    主要是Quota的问题:
    Quota,在HTML里面是成对的,可以是成对的单引号,也可以是双引号,也可以为空。情况二的description就没有引号,所以你的那个匹配不出来。huangwenquan123 和q107770540的正则表达式也有问题,不是严格意义上的正确。给你这个,刚写的,应该比较通用。
    <meta(\s+(?<AttributeName>\w+)(\s*=\s*((((?<Quota>["'])?(?<AttributeValue>.*?)\k<Quota>))|(?<AttributeValue>[^"'\s]*)))?)*/?>meta也可以换成其他的Tag。
      

  7.   

    <meta[^<]*?name=(['"])?(?<name>[^'"]+)*?content=(['"])?(?<content>[^'"]+)[^>]*?>