Кто-нибудь знает, почему вывод этого кода:
Regex re = new Regex("^bar", RegexOptions.Compiled);
string fooBarString = @"foo bar";
Match match1 = re.Match(fooBarString, 4);
Console.WriteLine(String.Format("Match 1 sucess: {0}", match1.Success));
Match match2 = re.Match(fooBarString.Substring(4));
Console.WriteLine(String.Format("Match 2 sucess: {0}", match2.Success));
является:
Соответствие 1 sucess: False
Достижение 2: True
?
Ожидаемое поведение - это, конечно, "True" и "True" (иначе я действительно не знаю, для чего должен использоваться параметр "startat" ).
Идея состоит в том, что это регулярное совпадение (и их очень много) вызывается очень часто (несколько tousand в секунду), и мы обнаружили, что операции подстроки убивают производительность памяти.
Спасибо за вашу помощь!