关于html 字符串的截取

asp_net_fish 2009-03-27 10:10:41
我想做一个截取html文本段落 截取 <br/> 或者</p> 反正二者之一 一共截取3次 比如:<br/></p><br/> 或 </p><br/></p>
就像博客的截取一部分 显示 然后点击查看全文
我现在只能截取<br/> 但是想截取</p> 确不行
 
public string formathtml(string Htmlstring)
{
string replacestring = "<br />|<br>";
string Htmlstring1 = Regex.Replace(Htmlstring, replacestring, "<br/>");
//Htmlstring = Regex.Replace(Htmlstring, @"<(/?)p>", "{p}", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<br(\s/?)>", "{br}", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<img (?<x>[^\>]*)>", "{img $1}", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"{p}", "<p>", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"{br}", "<br>", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"{img(?<x>[^\>]*)}", "<img onload=DrawImage(this,50,45) $1>", RegexOptions.IgnoreCase);
//string htmlcode = GetString("([\\br\\BR]*?)", Htmlstring).Trim();
Regex r = new Regex("([\\S\\s]*?)<br/>");

MatchCollection m = r.Matches(Htmlstring1);
string value = "";
if (m.Count > 3)
{
for (int i = 0; i < 3; i++)
{
value += m[i].Groups[1].Value + "<br/>";
}
return value;
}
else
{
return Htmlstring1;
}


}

请大家指点一下
...全文
271 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfd198512 2009-04-08
  • 打赏
  • 举报
回复
顶 LZ UP!!!
asp_net_fish 2009-04-08
  • 打赏
  • 举报
回复
dddddd
大神来了丶 2009-04-01
  • 打赏
  • 举报
回复
帮顶
youqi6597480 2009-04-01
  • 打赏
  • 举报
回复
学习学习
asp_net_fish 2009-04-01
  • 打赏
  • 举报
回复
不是固定的 呵呵 我现在只能截取<br/> 把<br> <br /> 转译为<br/>
mmbf001 2009-04-01
  • 打赏
  • 举报
回复
1
levinstong 2009-04-01
  • 打赏
  • 举报
回复
学习!!!!!!
qq2013 2009-03-30
  • 打赏
  • 举报
回复
ding
CutBug 2009-03-27
  • 打赏
  • 举报
回复
<br/> </p> <br/> 或 </p> <br/> </p>
这是固定的?
比如?
xxxxx<br/> </p> <br/>
xxxxx</p> <br/> </p>
...
Terran5 2009-03-27
  • 打赏
  • 举报
回复
正则表达式的问题。

protected void Page_Load(object sender, EventArgs e)
{
string str = " <table><tr><td >11111<br /></td><td><p>123456</p><p>123456</p><p>123456</p><p>123456</p></tr></table>";
formathtml(str);
}

public string formathtml(string Htmlstring)
{
string Htmlstring1 = Regex.Replace(Htmlstring, "<p>123456</p>", "<p>1</p>");
//Htmlstring = Regex.Replace(Htmlstring, @"<(/?)p>", "{p}", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<br(\s/?)>", "{br}", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<img (?<x>[^\>]*)>", "{img $1}", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"{p}", "<p>", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"{br}", "<br>", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring, @"{img(?<x>[^\>]*)}", "<img onload=DrawImage(this,50,45) $1>", RegexOptions.IgnoreCase);
//string htmlcode = GetString("([\\br\\BR]*?)", Htmlstring).Trim();
Regex r = new Regex("([\\S\\s]*?)<p>1</p>");

MatchCollection m = r.Matches(Htmlstring1);
string value = "";
if (m.Count > 3)
{
for (int i = 0; i < 3; i++)
{
value += m[i].Groups[1].Value + "X" + i.ToString();
}
return value;
}
else
{
return Htmlstring1;
}
}
asp_net_fish 2009-03-27
  • 打赏
  • 举报
回复
<(br|p)/?> </p> 是这样的格式吧
CutBug 2009-03-27
  • 打赏
  • 举报
回复
Regex r = new Regex("([\\S\\s]*?)<(br|p)/?>",RegexOptions.IgnoreCase);
asp_net_fish 2009-03-27
  • 打赏
  • 举报
回复
大小写 无所谓 我可以转的 主要是为了 <br/> 和</p> 条件能共存
chenguang79 2009-03-27
  • 打赏
  • 举报
回复
</p>是不是有大小的区分啊
jfd198512 2009-03-27
  • 打赏
  • 举报
回复
顶~ 学习

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧