【发布时间】:2011-05-04 14:23:51
【问题描述】:
有人知道为什么会输出这段代码吗:
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 成功:错误
匹配 2 成功:是的
?
预期的行为当然是“真”和“真”(否则我真的不知道“startat”参数应该有什么用处)。
这个想法是这种正则表达式匹配(并且有很多)被非常频繁地调用(每秒几次),我们发现子字符串操作正在扼杀内存性能。
感谢您的帮助!
【问题讨论】: