Строка ввода выглядит примерно так:
LineA: 50
LineB: 120
LineA: 12
LineB: 53
Я хотел бы заменить значения LineB на результат MultiplyCalculatorMethod(LineAValue)
, где LineAValue
- это значение строки выше LineB
, а MultiplyCalculatorMethod
- мой другой, сложный метод C #.
В полукоде я хотел бы сделать что-то вроде этого:
int MultiplyCalculatorMethod(int value)
{
return 2 * Math.Max(3,value);
}
string ReplaceValues(string Input)
{
Matches mat = Regex.Match(LineA:input_value\r\nLineB:output_value)
foreach (Match m in mat)
{
m.output_value = MultiplyCalculatorMethod(m.input_value)
}
return m.OutputText;
}
Example:
string Text = "LineA:5\r\nLineB:2\r\nLineA:2\r\nLineB:7";
string Result = ReplaceValues(Text);
//Result = "LineA:5\r\nLineB:10\r\nLineA:2\r\nLineB:6";
Я написал Regex.Match
, чтобы соответствовать LineA: value\r\nLineB: value
и получить эти значения в группах. Но когда я использую Regex.Replace
, я могу предоставить только «статический» результат, который объединяет группы из совпадения, но я не могу использовать там методы C #.
Так что мои вопросы, как Regex.Replace, где Result является результатом метода C #, где input это значение LineA.