【发布时间】:2016-09-29 19:09:45
【问题描述】:
我正在尝试从文本文件中删除新行。在记事本中打开文本文件并没有显示我要删除的换行符(它看起来像一大堵文本墙),但是当我在 sublime 中打开文件时,我可以看到它们。
在 sublime 中,我可以删除模式 '\n\n' 然后删除模式 '\n(?!AAD)' 没问题。但是,当我运行以下代码时,生成的文本文件并没有改变:
public void Format(string fileloc)
{
string str = File.ReadAllText(fileloc);
File.WriteAllText(fileloc + "formatted", Regex.Replace(Regex.Replace(str, "\n\n", ""), "\n(?!AAD)", ""));
}
我做错了什么?
【问题讨论】:
-
你在哪个平台上运行这个?也许你的换行符实际上是
\r\n? -
在正则表达式模式前放置一个
@。或者双反斜杠。 -
用 \r\n 或 \\n 替换 \n,以及将 @ 放在模式的前面都不会导致任何变化。另外,如果这些模式可以在 sublime 中工作,为什么它们不能在 c# 中工作?
-
与我们分享确切的文件。
-
@WiktorStribiżew 我不能。该文件包含机密的客户信息。这是一个包含客户姓名、电子邮件和地址的导出文件。