可靠地替换换行符

本文关键字:换行符 替换 | 更新日期: 2023-09-27 18:10:52

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

基本上我想要的是一种方法来找到''n'r', ''n'和''r',并将它们替换为一个''r'n',但要确保每个都不匹配/替换适当的''r'n' (CRLF)或替换''n'r'与两个''r'n'。

可靠地替换换行符

负向后看

我的建议是:

'n?'r(?!'n)|(?<!'r)'n
  • 在交替'|'的左侧,'n?'r(?!'n)匹配'n'r'r,但前提是负向前看(?!'n)能够断言后面的不是'r
  • 右边的(?<!'r)'n匹配前面没有'r
  • 的所有'n
参考

  • 零长度断言的前向和后向
  • 掌握向前看和向后看