Ciąg wejściowy jest coś takiego:Jak regex zastąpić element grupy mecz z wynikiem metody
Linea: 50
LineB: 120
Linea: 12
LineB: 53
Chciałbym zastąpić wartości linii B wynikiem MultiplyCalculatorMethod(LineAValue)
, gdzie LineAValue
jest wartością linii powyżej LineB
i MultiplyCalculatorMethod
to moja inna, skomplikowana metoda C#.
w Semi-kodu, chciałbym zrobić coś takiego:
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";
Napisałem Regex.Match
dopasować LineA: value\r\nLineB: value
i uzyskać te wartości w grupach. Ale kiedy używam Regex.Replace
, mogę podać tylko "statyczny" wynik, który łączy grupy z meczu, ale nie mogę tam użyć metod C#.
Moje pytanie brzmi: jak Regex.Replace where Result jest wynikiem metody C#, gdzie input jest wartością LineA.
@tomaszs: to nie jest do końca jasne dla mnie. Być może pomocne byłoby podanie ciągów wyników, których można się spodziewać po danych ciągach wejściowych. –
Dodałem przykład –