读书人

正则一段html判断里面的img标签里

发布时间: 2013-06-25 23:45:42 作者: rapoo

正则高手进,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX"
c#
正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot" 正则
[解决办法]


string source = @"<img src="""" alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot"""> <img src="""" > <img src="""" title=""""> <img src="""" id=""""> <img src="""" title="""" alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot"""> ";
foreach (Match m in Regex.Matches(source, @"(?is)<img(?![^<>]*?alt[^<>]*?>)[^>]*?>"))
{
Console.WriteLine(Regex.Replace(m.Value, @"(?<=<img\s*).*?(?=/?>)", @"$0alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot"XXX"""));
}

[解决办法]
 string yourhtml = @"<img src='xxx.jpg'>
<img src='xxx.jpg' alt='yyy'> ";
Console.WriteLine(yourhtml);
yourhtml = Regex.Replace(yourhtml, "(?i)(?<=<img\\b)[^>]*?(?=>)", m => m.Value.Contains("alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot" alt='XXX'");
Console.WriteLine(yourhtml);

[解决办法]
用htmlagilityPack:
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("<img src='1.jpg'/><img src='2.jpg' alt='value'/><img src='3.jpg' /><img src='alt.jpg' title='alt=value'/><img src='5.jpg' alt=''/>");
htmlDoc.DocumentNode.SelectNodes("//img[not(@alt)]").ToList().ForEach(x => x.SetAttributeValue("alt", "xxxxx"));
Response.Write(Server.HtmlEncode(htmlDoc.DocumentNode.InnerHtml));

<img src='1.jpg' alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot"><img src='2.jpg' alt='value'><img src='3.jpg' alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot"><img src='alt.jpg' title='alt=value' alt="正则,一段html,判断里面的img标签里没有alt信息,没有的话加上alt="XXXX&quot"><img src='5.jpg' alt=''>

读书人网 >C#

热点推荐