我想用空字符串“”替换文件中的任何换行符(Lf)。但是,我不希望它也替换CrLf中的Lf(行尾标志)。
我在想这样的事情:
fileContent.Replace("\n","");
上面的代码行会将CrLf中的Lf替换为Cr,所以我不希望这样。请给我一些正则表达式的建议,忽略CrLf中的Lf。
非常感谢。
PS:逻辑改变了。我用过这个:
fileContent = Regex.Replace(fileContent, @"\r\n(?=>)|(?<!\""\r)\n", "");
替换&gt;之后出现的所有CrLf使用空字符串(“”)并替换所有未跟随“Cr with empty string(”“)的换行符(Lf)。这是正确的吗?谢谢
答案 0 :(得分:3)
除了其他Regular Expression
答案,您只需使用Negative Look-Behind即可避免捕获不必要的数据:
string result = Regex.Replace(fileContent, @"(?<!\r)\n+", "");
答案 1 :(得分:2)
您可以使用正则表达式。下面的RegEx匹配\ n字符,这些字符位于输入的开头或以\ r开头。它捕获组中\ n之前的字符,以便它可以将其重新插入到字符串中。
string result = Regex.Replace(fileContent, @"(^|[^\r])\n", "$1");