繁体   English   中英

用空字符串替换换行(lf),而不用crlf C#替换lf

[英]Replace line feed (lf) with empty string without replacing lf in crlf C#

我想用空字符串“”替换文件中的任何换行(Lf)。 但是,我不希望它也替换CrLf中的Lf(行尾标志)。

我在想这样的事情:

fileContent.Replace("\n","");

上面的代码行将CrLf中的Lf替换为Cr,所以我不希望这样。 请给我一些有关正则表达式的建议,这些正则表达式将忽略CrLf中的Lf。

非常感谢。

PS:逻辑改变了。 我用这个:

fileContent = Regex.Replace(fileContent, @"\r\n(?=>)|(?<!\""\r)\n", ""); 

用空字符串(“”)替换>之后出现的所有CrLf,并用空字符串(“”)替换所有不跟在“ Cr”之后的换行符(Lf)。

除了其他Regular Expression答案外,您还可以使用负向后看来避免捕获不必要的数据:

string result = Regex.Replace(fileContent, @"(?<!\r)\n+", "");

您可以使用正则表达式。 下面的RegEx匹配输入开头或前面带有\\ r的\\ n字符。 它捕获\\ n组中\\ n之前的字符,以便可以将其重新插入字符串中。

string result = Regex.Replace(fileContent, @"(^|[^\r])\n", "$1");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM