如何使用方法结果替换匹配组项输入字符串是这样的:LineA:50LineB:120LineA:12LineB:53我要使用MultiplyCalculatorMethod(LineAValue)的结果替换LineB的值,其中LineAValue是LineB上面那一行的值,MultiplyCalculatorMethod是我的另一个复杂的C#方法。在半代码中,我想做这样的事情:intMultiplyCalculatorMethod(intvalue){return2*Math.Max(3,value);}stringReplaceValues(stringInput){Matchesmat=Regex.Match(LineA:input_valuernLineB:output_value)foreach(Matchminmat){m.output_value=MultiplyCalculatorMethod(m.input_value)}returnm.OutputText;}例子:stringText="LineA:5rnLineB:2rnLineA:2rnLineB:7";字符串结果=ReplaceValues(文本);//Result="LineA:5rnLineB:10rnLineA:2rnLineB:6";我写了一个Regex.Match来匹配LineA:valuernLineB:value并在一组中获取这些值。但是当我使用Regex.Replace时,我只能提供一个“静态”结果来组合匹配组,但我不能在那里使用C#方法。所以我的问题是如何Regex.Replace,其中Result是C#方法的结果,其中输入是LineA值。尝试使用以下替换重载。公共静态字符串替换(字符串输入、字符串模式、MatchEvaluator评估器);MatchEvaluator可以访问Match内容,并且可以调用任何其他方法来返回替换字符串。你可以这样使用MatchEvaluator:以上是C#学习教程:如何使用方法result替换匹配组项共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—publicstaticclassProgram{publicstaticvoidMain(){stringinput="LineA:5rnLineB:2rnLineA:2rnLineB:7";字符串输出=Regex.Replace(input,@"LineA:(?d+)rnLineB:d+",newMatchEvaluator(MatchEvaluator));控制台.WriteLine(输出);}privatestaticstringMatchEvaluator(Matchm){intinputValue=Convert.ToInt32(m.Groups["input_value"].Value);intoutputValue=MultiplyCalculatorMethod(inputValue);返回字符串。Format("LineA:{0}rnLineB:{1}",inputValue,outputValue);}staticintMultiplyCalculatorMethod(intvalue){return2*Math.Max(3,value);}}本文收集自网络,不代表任何内容,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
