可靠地取代Newlines

时间:2014-07-01 10:36:24

标签: c# .net regex

我有一个(.Net)字符串,其中包含LFCR,CR,LF和CRLF换行符的变体,我想用一个CRLF替换前面的三个字符串,但保持现有的CRLF不变。

基本上我想要的是找到'\ n \ r','\ n'和'\ r'并用'\ r \ n'替换它们的方法,但要确保每个都不匹配/替换正确的'\ r \ n'(CRLF)或用'\ r \ n'替换'\ n \ r'。

1 个答案:

答案 0 :(得分:3)

负面前瞻,负面观察

我会建议:

\n?\r(?!\n)|(?<!\r)\n
  • 在替换“|”的左侧,\n?\r(?!\n)匹配\n\r\r,但前提是否定前瞻(?!\n)能够断言以下内容不是\r
  • 在右侧,(?<!\r)\n匹配\n之前没有的所有\r

<强>参考