C# 替换a";新行“;C中带有正则表达式的char#

C# 替换a";新行“;C中带有正则表达式的char#,c#,regex,C#,Regex,我想定位文本文件中包含“字母或数字”、“新行”、“字母或数字”序列的每个字符串,然后用“空格”替换“新行” 这就是我迄今为止所尝试的: private void button3_Click(object sender, EventArgs e) { string pathFOSE = @"D:\Public\temp\FOSEtest.txt"; string output = Regex.Replace(pathFOSE, @"(?<=\w)\n(?=\w)

我想定位文本文件中包含“字母或数字”、“新行”、“字母或数字”序列的每个字符串,然后用“空格”替换“新行”

这就是我迄今为止所尝试的:

private void button3_Click(object sender, EventArgs e)
{
     string pathFOSE = @"D:\Public\temp\FOSEtest.txt";     
     string output = Regex.Replace(pathFOSE, @"(?<=\w)\n(?=\w)", " ");                      

     string pathNewFOSE = @"D:\Public\temp\NewFOSE.txt";
     if (!System.IO.File.Exists(pathNewFOSE))
     {
          // Create a file to write to. 
          using (System.IO.StreamWriter sw = System.IO.File.CreateText(pathNewFOSE))
          {                
          }
     File.AppendAllText(pathNewFOSE, output);
     }
}
private void按钮3\u单击(对象发送者,事件参数e)
{
字符串pathFOSE=@“D:\Public\temp\FOSEtest.txt”;

string output=Regex.Replace(pathFOSE,@)(?您需要使用正向查找

Regex.Replace(pathFOSE, @"(?<=\w)\n(?=\w)", " "); 
                            ^

在Windows中,换行符通常看起来像
\r\n
(插入符号返回+换行符)。 因此,可以将前面和后面带有字母数字的换行符与匹配

string output = Regex.Replace(pathFOSE, @"(?<=\w)\r\n(?=\w)", " ");
如果各种操作系统或程序混合使用换行符,则可以使用

string output = Regex.Replace(pathFOSE, @"(?i)(?<=[a-z0-9])(?:\r\n|\n|\r)(?=[a-z0-9])", " ");

用于新行的字符(个)在您的操作系统上。不确定您的意思是什么,但我将
\n
替换为
环境。换行符
,以获得相同的结果。我想我需要知道为什么要先在文本文件中写入路径。我仍然只得到一个写有路径的文本文件。我想还有一个问题,谢谢您的帮助这是一个深思熟虑的
@”(?感谢您提供了这个详细的答案,一旦我理解了为什么
替换
发生在路径字符串上,而不是它导致的文件上,这将非常有帮助。您需要先读文件:
var contents=file.ReadAllText(pathFOSE);
。并对
内容执行替换,然后将修改后的内容写入新文件。好的,我想您只需要
ReadAllText
。我的思考速度比键入快了一点:)不幸的是,仍然是相同的结果是的,刚刚意识到我做了什么…请告诉我正确的方法;)
string output = Regex.Replace(pathFOSE, @"(?i)(?<=[a-z0-9])\r\n(?=[a-z0-9])", " ");
string output = Regex.Replace(pathFOSE, @"(?i)(?<=[a-z0-9])(?:\r\n|\n|\r)(?=[a-z0-9])", " ");
var pathFOSE = @"D:\Public\temp\FOSEtest.txt";
var contents = File.ReadAllText(pathFOSE);
var output = Regex.Replace(contents, @"(?i)(?<=[a-z0-9])(?:\r\n|\n|\r)(?=[a-z0-9])", " ");

var pathNewFOSE = @"D:\Public\temp\NewFOSE.txt";
if (!System.IO.File.Exists(pathNewFOSE))
{
    File.WriteAllText(pathNewFOSE, output);
}