Мне нужно заменить строку, где она следует за определенной строкой и некоторыми переменными данными. Мне нужно сохранить начало и середину и просто заменить конец. Когда я попробовал код ниже, он заменяет только последнее событие. Я попытался переключиться на не жадный матч, но тогда он его не найдет. Середина может содержать новые строки, а также пробелы, буквы и цифры.Regex заменить все вхождения
String s = "Beginning of story. Keep this sentence. Old ending.\n";
s += s;
s += s;
s1 = Regex.Replace(s, @"Beginning of story. ([\s\S]*) Old ending.", "Beginning of story. " + @"$1" + " New ending.", RegexOptions.Multiline | RegexOptions.IgnoreCase);
The result is this:
Beginning of story. Keep this sentence. Old ending.
Beginning of story. Keep this sentence. Old ending.
Beginning of story. Keep this sentence. Old ending.
Beginning of story. Keep this sentence. New ending.
Как заменить каждое возникновение «старого окончания».
Попробуйте добавить '' '' в конце вашего шаблона - должно совпадать с концом каждой строки с учетом опции 'Multiline'. – zimdanen
Связанный: http://stackoverflow.com/q/2301285/785745 –
Нежелательный матч должен позаботиться об этом. Не могли бы вы показать, что вы пробовали? –