Это меня очень озадачило.Почему я получаю повторяющиеся строки замены в следующем коде:
static void Main(string[] args)
{
String input = "test";
String pattern = ".*";
String replacement = "replace";
Console.WriteLine(Regex.Replace(input, pattern, replacement));
Console.Read();
}
Это выводит на консоль:
replacereplace
Я понимаю, что регулярное выражение получает странные совпадающие символы конца строки, но должно бытьникто.Я также понимаю, что шаблон не может ничего соответствовать, но ясно, что вход не является ничем.Это происходит в .Net 3.5 и 4.0, и я получаю то же самое с SingleLine и MultiLine.
Я знаю, что есть несколько альтернатив, которые будут делать то, что я ожидаю, но мне интересно больше о том, что другое совпадение.* думает, что нашел.