gpt4 book ai didi

C# 正则表达式 - 匹配和替换,自动递增

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

我一直在努力解决一个问题,我们将不胜感激。

问题:我有一个段落,我想替换一个出现多次的变量(Variable = @Variable)。这是简单的部分,但我遇到困难的部分是尝试用不同的值替换变量。

我需要每次出现都有不同的值。例如,我有一个对每个变量进行计算的函数。到目前为止,我所拥有的如下:

private string SetVariables(string input, string pattern){

Regex rx = new Regex(pattern);
MatchCollection matches = rx.Matches(input);
int i = 1;
if(matches.Count > 0)
{
foreach(Match match in matches)
{
rx.Replace(match.ToString(), getReplacementNumber(i));
i++
}
}

我可以用 getReplacementNumber(i) 函数返回的数字替换我需要的每个变量,但是我如何用替换值将它放回我的原始输入中,顺序与匹配集合中的顺序相同?

提前致谢!

马库斯

最佳答案

使用 Replace 的重载这需要 MatchEvaluator作为它的第二个参数。

string result = rx.Replace(input, match => { return getReplacementNumber(i++); });

我在这里假设 getReplacementNumber(int i) 返回一个 string。如果不是,则必须将结果转换为字符串。

在线查看它:ideone

关于C# 正则表达式 - 匹配和替换,自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058229/

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