При ответе на этот вопрос C # Regex Replace и * был поднят вопрос, почему существует проблема. При воспроизведении я получил следующий код:
string s = Regex.Replace(".A.", "\w*", "B");
Console.Write(s);
Он имеет вывод: B.BB.B
Я понимаю, что строка длины 0 совпадает до и после .
, но почему A заменяется на 2 Bs.
Я мог понять B.BBB.B
как замену строк нулевой длины по обе стороны от A
или B.B.B
Но фактический результат меня смущает - любая помощь приветствуется.
Или, как выразился AakashM:
Почему Regex.Matches («A», «\ w *»). Count
равно 2
, а не ] 1
или 3
?