.NET Regex Replace Single Line Matching Unknown Character

Это меня крайне сбило с толку. Почему я получаю повторяющиеся строки замены в следующем коде:

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.

Я знаю, что есть несколько альтернатив, которые сделают то, что я ожидаю, но мне больше интересно, какое другое совпадение * считает своим выводом.

5
задан NullUserException 6 October 2011 в 23:58
поделиться