如果与文本合并,如何将带有空格的特定字符串替换为文本文件

本文关键字:文本 字符串 替换 文件 空格 合并 如果 | 更新日期: 2023-09-27 18:18:01

我试图替换文本文档中的特定字符串,如果它被写在那里与其他文本合并

例如文档内容为:

a1some textb2
some c2c1text a1
c1 some text c2d2
some textd2

我想得到这个结果:

a1 some text b2
some c2 c1 text a1
c1 some text c2 d2
some text d2

似乎是一个错误的方式:

string text = File.ReadAllText(path); 
       text = text.Replace("a1", " a1 ").Replace("b2", " b2 ")
                  .Replace("c1", " c1 ").Replace("d2", " d2 ");
File.WriteAllText(path, text);

因为结果是这样的

 a1   
   some text               b2
    some           c2           c1 text                a1
    c1 some text      c2              d2
    some text                d2

如果与文本合并,如何将带有空格的特定字符串替换为文本文件

你可以试试这个正则表达式:

's?(a1|b2|c1|d2)'s?
下面是如何在c#中做到这一点:
using System;
using System.Text.RegularExpressions;
public class Program
{
    public static void Main()
    {
        var text = @"a1some textb2";
        var pattern = @"'s?(a1|b2|c1|d2)'s?";
        var replaced = Regex.Replace(text, pattern, " $1 ");
        Console.WriteLine(replaced);
    }
}

演示:https://dotnetfiddle.net/xf0BVO

您可能在替换字符串中使用tabs而不是spaces,例如在

    Replace("a1", " a1 ")

可能是字符串" a1 "中的tab(或2 tabs)(您没有看到-因此删除它们并再次使用键盘中的space键编写它们)。