如果与文本合并,如何将带有空格的特定字符串替换为文本文件
本文关键字:文本 字符串 替换 文件 空格 合并 如果 | 更新日期: 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
键编写它们)。