正则表达式用\ r \n替换\ r后面没有后跟\n的所有实例

Bre*_*mbs 5 c# regex string replace

我怎么能代替\r用的\r\n的时候\r被后面没有\n使用正则表达式?

问题

我在Windows上创建文本编辑器时出现问题,因为换行符被添加为\ r \n.因此,当我在记事本中打开文件时,它们不会被读取为换行符.

我尝试了什么

我已经尝试到处寻找(谷歌,堆栈溢出等),但一直无法找到专门为我所追求的东西.

到目前为止,我所尝试的所有东西都是我一次做的事情,但是\r即使它们后面跟着它,它也会不必要地取代它\n.

供参考,这是表达式:

"\r(?!^\n)", "\r\n"
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 5

你需要使用

\r(?!\n)
Run Code Online (Sandbox Code Playgroud)

也就是说,^\r(?!^\n)表达式中删除字符串/行修饰符的开头.在\r将匹配一个回车和(?!\n)如果有一个LF立即显示在其右边会失败的比赛.

一个C#演示:

var s = "Line1\rLine2\r\nLine3";
var res = Regex.Replace(s, "\r(?!\n)", "\r\n");
Console.WriteLine(res.Replace("\r","CR").Replace("\n","LF\n"));
// => Line1CRLF
//    Line2CRLF
//    Line3
Run Code Online (Sandbox Code Playgroud)