Вот простой примерRegex.Replace удаляет « г» символ в « г п»
string text = "parameter=120\r\n";
int newValue = 250;
text = Regex.Replace(text, @"(?<=parameter\s*=).*", newValue.ToString());
text
будет "parameter=250\n"
после замены. Метод Replace() удаляет '\ r'. Использует ли он стиль unix для линейного фида по умолчанию? Добавление \b
к моему регулярному выражению (?<=parameter\s*=).*\b
решает проблему, но я полагаю, что должен быть лучший способ разбора строк с помощью строк строки в стиле окна.
Ваш пример не будет работать на .Net (он выглядит как php или perl), но регулярное выражение с '\ r \ n' отлично работает ' text = Regex.Replace (text, @ "(? <= Parameter \ s * =). * (? = \ r \ n) ", newValue.ToString()); ' – Max
@Max вы попробовали? Отлично работает для меня в .net 4.0 и .net 4.5. Я предполагаю, что синтаксис jarring - это $ {1} - он вставляет обратно ссылку из шаблона в строку замены. – Gusdor
Да, я попробовал. В результате получается '$ 1250 \ n" '. Да, $ {1} смутил меня :). – Max