正则表达式替换换行符,如果它们出现超过一次,包括中间有空格的组合
Posted
技术标签:
【中文标题】正则表达式替换换行符,如果它们出现超过一次,包括中间有空格的组合【英文标题】:Regex replace line feeds if they occur more than one time including combination with space in between 【发布时间】:2020-09-05 18:22:32 【问题描述】:所以我有一个字符串,我想用一个换行符替换序列中出现两次以上的所有换行符。为此我使用:
Regex.Replace(str, "(?:\r\n|\r(?!\n)|(?!<\r)\n)2,", Environment.NewLine)
只要序列是\r\n\r\n
,这就会起作用,但我有一个案例是在哪里看到这个\r\n \r\n \r\n
那么如何使用正则表达式替换这些值?
【问题讨论】:
我不知道 C# 是否支持它,但可以尝试一下:(?:\R\h*)2,
其中\R
代表任何类型的换行符,\h
代表任何水平空格。
【参考方案1】:
Regex.Replace(text, @"(?:(?:[ \t\r\n])+(?![\r\n]))+", Environment.NewLine);
除空格外还包括制表符。
【讨论】:
这与\n \n \n
不匹配
固定处理这种情况
谢谢,差不多了,因为这也替换了单词之间的空格。例如:“您好,这是第一行\r\n \r\n这是第二行”必须是“您好,这是第一行\r\n这是第二行”以上是关于正则表达式替换换行符,如果它们出现超过一次,包括中间有空格的组合的主要内容,如果未能解决你的问题,请参考以下文章