Вы могли бы сделать что-то вроде этого:
string pattern = "asdf=123";
Regex r = new Regex(@"(.*?=)(.*)");
Match m = r.Match(pattern);
if(m.Success)
Console.WriteLine(m.Groups[1].Value + new String(m.Groups[2].Value.Reverse().ToArray()));
выше будет соответствовать что-нибудь, пока она не найдет равенства ((.*?=)
) и помещает его в группе. Затем он будет соответствовать следующему и помещает его в другую группу ((.*)
). Затем первая группа печатается как есть, пока содержимое второй группы отменяется.
Менее многословный, но менее гибкий способ сделать это было бы использовать Regex.Replace
, с чем-то вроде так:
string pattern = "asdf=123";
Console.WriteLine(Regex.Replace(pattern, @"(.*?=)(\d)(\d)(\d)", "$1$4$3$2"));
Это менее прочное, хотя, так как вы должны были бы знать количество цифр, прежде чем руки.
EDIT: В соответствии с вашими редактирования:
Вам нужно будет использовать: Regex.Replace("asdf=123", "(.*?=)\d{3}","$1bbbcccddd")
Возможно, эта ссылка поможет? : https://msdn.microsoft.com/en-us/library/xwewhkd1(v=vs.110).aspx –
Более подробная информация. Что после/до «asdf = 123» в вашей строке/файле? Если это что-то вроде «asdasd____ asdf = 123 _____ asdasd», это одно, но если это «zzzzzzasdf = 12309656097» - это нечто другое. Было бы неплохо, если бы вы предоставили сокращенный пример этой строки. Значения фиксированы? Или это всего лишь пример шаблона, который вы ищете? – Fabjan