我有以下字符串正则表达式
"choose to still go on the trip. <br><br>\r\nNote that when booking"在使用正则表达式转换后,我只需要用一个<br>替换<br>标记,因此字符串将如下所示
"choose to still go on the trip. <br>Note that when booking"发布于 2013-04-23 18:33:09
如果您需要考虑标签之间有空格的情况,请尝试以下regex:
myInputStr = Regex.Replace(myInputStr,
@"([\b\s]*<[\b\s]*[bB][rR][\s]*/?[\b\s]*>){2,}",
"<br>", RegexOptions.Multiline);此正则表达式将用单个实例替换2个或更多个<br>标记实例,而不考虑标记的形式(间距、大小写、自闭合等)。
发布于 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,它解释了一种如何替换重复项的方法。
发布于 2013-04-23 18:27:57
编辑:如果你不知道你有多少个<br>,你可以这样做:
<br>拆分字符串并删除空条目。代码如下:
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);https://stackoverflow.com/questions/16166954
复制相似问题