日期:2014-05-18  浏览次数:20539 次

正则提取img标签属性与值(C#)
如题,比如下面的字符串里有两个img标签:
<img src="aa.jpg" id="img1" />
<img src="bb.jpg" class="image" shuxing="shux" />
两个标签里的属性个数未知,顺序未知,有可能还存在自己添加的属性:比如shuxing="shux"
我现在想把这字符串里所有的img标签的属性提取出来结果放在:List<Dictionary<string,string>>(List<Dictionary<属性名称,属性值>>) 里面.请大家帮帮忙,


------解决方案--------------------
属性(?is)(?<=\s*?)[a-z\d]*?(?==")
值(?is)(?<==")[a-z\d\.]*?(?=")
------解决方案--------------------
C# code

void Main()
{
    string html=@"<img src=""aa.jpg"" id=""img1"" />
            <img src=""bb.jpg"" class=""image"" shuxing=""shux"" />";
    foreach(Match m in Regex.Matches(html,@"(?i)<img\s*((?<key>[^=]+)=""(?<value>[^""]+)"")+?\s*/>"))
    {
       foreach(Capture c in m.Groups["key"].Captures)
       {
         Console.WriteLine(c.Value);
       }
         Console.WriteLine("*************");
         foreach(Capture c in m.Groups["value"].Captures)
       {
         Console.WriteLine(c.Value);
       }
        Console.WriteLine("*************");
    }
    
    /*
            src
        id
        *************
        aa.jpg
        img1
        *************
        src
        class
        shuxing
        *************
        bb.jpg
        image
        shux
        *************

    */
}