C#Regex替换

Ent*_*ity 0 c# regex replace

基本上,我有一个像这样的字符串:

    Some Text Here | More Text Here | Even More Text Here
Run Code Online (Sandbox Code Playgroud)

而且我希望能够用两个条形替换文本New Text,所以它最终会像:

    Some Text Here | New Text | Even More Text Here
Run Code Online (Sandbox Code Playgroud)

我假设最好的方法是使用正则表达式...所以我尝试了很多东西,但无法得到任何工作......帮助?

Qui*_*ith 5

对于像这样的简单案例,最好的apprach是一个简单的字符串拆分:

string input = "foo|bar|baz";
string[] things = input.Split('|');
things[1] = "roflcopter";
string output = string.Join("|", things); // output contains "foo|roflcopter|baz";
Run Code Online (Sandbox Code Playgroud)

这依赖于以下几点:

  • 总是有3个以管道分隔的文本字符串.
  • 管道之间没有微不足道的空间.

要纠正第二个,请执行以下操作:

for (int i = 0; i < things.Length; ++i)
    things[i] = things[i].Trim();
Run Code Online (Sandbox Code Playgroud)

从每个元素的开头和结尾删除空格.

正则规则的一般规则是它们通常应该是你的最后手段; 不是你的第一个.:)