正则表达式替换多个新行

时间:2016-12-02 13:01:09

标签: c# regex

在C#中如何指定正则表达式来替换多个组。例如,我想用环境换行符替换\r\n\r\r的多个实例。我逻辑上写了这个正则表达式,但我知道这是错误的。请更正并解释它是如何工作的。

System.Text.RegularExpressions.Regex.Replace(task.Message, @"(\r\n){2,}(\r\r){2,}", System.Environment.NewLine);

输入文字

Stackoverflow

StackExchange

User Experience

每行可以由\r\n\r\r分隔。正则表达式替换后的预期结果低于

Stackoverflow    
StackExchange    
User Experience

1 个答案:

答案 0 :(得分:10)

重点是你的正则表达式匹配\r\n(2个或更多)的序列,然后匹配\r\r的2个或更多序列。你需要

[\r\n]+

[\r\n]{2,}如果您只需要匹配两次或更多次\r\n。{/ p>

如果您需要完全匹配2个或更多常见换行符类型(Windows中的\r\n,Unix / Linux中的\n和Mac OS上的\r,请使用

(?:\r?\n|\r){2,}