首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用正则表达式c#从字符串中删除连续的<br>

使用正则表达式c#从字符串中删除连续的<br>
EN

Stack Overflow用户
提问于 2013-04-23 18:25:17
回答 5查看 2.2K关注 0票数 3

我有以下字符串正则表达式

代码语言:javascript
运行
复制
"choose to still go on the trip. <br><br>\r\nNote that when booking"

在使用正则表达式转换后,我只需要用一个<br>替换<br>标记,因此字符串将如下所示

代码语言:javascript
运行
复制
"choose to still go on the trip. <br>Note that when booking"
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-04-23 18:33:09

如果您需要考虑标签之间有空格的情况,请尝试以下regex:

代码语言:javascript
运行
复制
myInputStr = Regex.Replace(myInputStr,
    @"([\b\s]*<[\b\s]*[bB][rR][\s]*/?[\b\s]*>){2,}",
    "<br>", RegexOptions.Multiline);

此正则表达式将用单个实例替换2个或更多个<br>标记实例,而不考虑标记的形式(间距、大小写、自闭合等)。

票数 4
EN

Stack Overflow用户

发布于 2013-04-23 18:44:38

这可以用另一种(更安全的)方式来完成,使用HTML Agility Pack (开源项目http://html-agility-pack.net)。

它考虑了<br><br/><br />的各种表示法,而无需担心。这意味着您可以专注于实际任务:替换重复项。

参见Remove chain of duplicate elements with HTML Agility Pack,它解释了一种如何替换重复项的方法。

票数 5
EN

Stack Overflow用户

发布于 2013-04-23 18:27:57

编辑:如果你不知道你有多少个<br>,你可以这样做:

  1. 使用<br>拆分字符串并删除空条目。
  2. 使用单个your连接字符串

代码如下:

代码语言:javascript
运行
复制
string yourString = "choose to still go on the trip. <br><br>\r\nNote that when booking";

var temp = 
    yourString.Split(new string[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries)
               .Where(i => i.Replace(" ", string.Empty).Length > 0);

string result = string.Join("<br>", temp);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16166954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档