gpt4 book ai didi

c# - 正则表达式替换 - 如何用不同的字符串替换多个地方的相同模式?

转载 作者:太空狗 更新时间:2023-10-29 21:25:40 25 4
gpt4 key购买 nike

我有一个奇怪的问题......!

我有一个字符串,它有多个步长的一些常量值。例如考虑以下刺痛。

string tmpStr = "Hello _tmp_ how is _tmp_ this possible _tmp_ in C#...?"

现在我想用存储在数组中的值替换字符串中的每个 tmp,第一个 tmp 包含数组 [0],第二个 tmp 保存 array[1] 等等...

知道如何实现这一目标吗?我使用 C# 2.0

最佳答案

这个怎么样:

string input = "Hello _tmp_ how is _tmp_ this possible _tmp_ in C#...?";
string[] array = { "value1", "value2", "value3" };

Regex rx = new Regex(@"\b_tmp_\b");

if (rx.Matches(input).Count <= array.Length)
{
int index = 0;
string result = rx.Replace(input, m => array[index++]);
Console.WriteLine(result);
}

您需要确保找到的匹配项的数量永远不会超过数组的长度,如上所示。

编辑:作为对评论的回应,这可以通过将 lambda 替换为以下内容轻松地与 C# 2.0 一起使用:

string result = rx.Replace(input, delegate(Match m) { return array[index++]; });

关于c# - 正则表达式替换 - 如何用不同的字符串替换多个地方的相同模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com