В вашем коде вы соответствуете Foo (\d+?);
и заменяете это совпадение на NUM
, что будет буквальным результатом.Но при замене вы хотите сохранить не цифры, а FOO
. Вы можете сделать замену наоборот, используя группу захвата для Foo и используя эту группу захвата в замене.
Regex.Replace(line, @"(Foo) \d+;", "$1 NUM;")
Вы можете не указывать \d+
не жадный, используя вопросительный знак.
Regex demo | C # демо
