在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
答案 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,}