基本规范:
public List<string> MatchHtmlImgSrc(string html)
{
Regex imgReg = new Regex("<img[^>]*>", RegexOptions.IgnoreCase);
var imgs = imgReg.Matches(html);
Regex srcReg = new Regex("src=[\"|\']\\S+[\"\']", RegexOptions.IgnoreCase);
List<string> links = new List<string>();
foreach (var img in imgs)
{
links.Add(srcReg.Match(img.ToString()).ToString().Replace("src=", "").Replace("\'", "").Replace("\"", ""));
}
return links;
}
用法:
List<string> imgLinks = MatchHtmlImgSrc("<img src='图片链接1'/> <img src='图片链接2'/>");
一个真实razor实例:
@using System.Text.RegularExpressions
@{
Layout = "~/Views/Shared/_ask.cshtml";
DataTable typeDt = new B_GradeOption().GetGradeList(2, 0);
DataTable solveDt = (DataTable)ViewBag.solveDt;
DataTable hotDt = (DataTable)ViewBag.hotDt;
//最近的20条问题
DataTable lastAskDT = askBll.SelPage(1, 20, new Com_Filter() { }).dt;
}
@functions{
public List<string> MatchHtmlImgSrc(string html)
{
Regex imgReg = new Regex("<img[^>]*>", RegexOptions.IgnoreCase);
var imgs = imgReg.Matches(html);
Regex srcReg = new Regex("src=[\"|\']\\S+[\"\']", RegexOptions.IgnoreCase);
List<string> links = new List<string>();
foreach (var img in imgs)
{
links.Add(srcReg.Match(img.ToString()).ToString().Replace("src=", "").Replace("\'", "").Replace("\"", ""));
}
return links;
}
……
}
<div class="qitem_pic">
@foreach (var item in MatchHtmlImgSrc(dr["Qcontent"].ToString())) //这是引用的那一行
{
<a href="/Ask/MyAnswer?ID=@dr["ID"]"><img src="@Html.Raw(@item)" /></a>
}
</div>
实例:http://demo.z01.com/ask