我有一些来自telerik radeditor的html字符串,它可能包含宽度和高度的图片标签。我想删除那些宽度和高度属性。 如何在代码中使用正则表达式或其他在asp.net中执行此操作?
答案 0 :(得分:1)
我不确定我是否理解这个问题,但为什么不首先省略它们而不是试图删除它们?
在ASPX文件中....
<img src="images/myimage.jpg">
对于上帝的爱,不要试图用正则表达式将它们剥离出来。
答案 1 :(得分:1)
有很多关于not to use regex when parsing HTML的提及,所以你可以使用例如Html Agility Pack为此:
HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);
var images = document.DocumentNode.SelectNodes("//img");
foreach (HtmlNode image in images)
{
if (image.Attributes["width"] != null)
{
image.Attributes["width"].Remove();
}
if (image.Attributes["height"] != null)
{
image.Attributes["height"].Remove();
}
}
这将删除html中图片的width
和height
属性。
答案 2 :(得分:0)
两个正则表达式替换语句可以很好地完成这项任务:
str = Regex.Replace(str, @"(<img[^>]*?)\s+height\s*=\s*\S+",
"$1", RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"(<img[^>]*?)\s+width\s*=\s*\S+",
"$1", RegexOptions.IgnoreCase);
(这是一个C#片段 - 不确定ASP.NET是否相同)
答案 3 :(得分:-2)
str = Regex.Replace(str, @"(<img[^>]*?)\s+height\s*=\s*\S+",
"$1", RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"(<img[^>]*?)\s+width\s*=\s*\S+",
"$1", RegexOptions.IgnoreCase);