使用Regex.Match静态方法查找从特定位置开始的匹配

时间:2011-07-08 03:50:21

标签: c# regex pattern-matching match

Microsoft提供了一种名为Match的方法,该方法与从输入字符串中的特定位置开始的正则表达式模式匹配。我想要做的是通过使用static method version of Match来优化我的程序的性能,从而获得缓存的好处。似乎没有办法指定开始匹配的特定位置,即使成员版本确实如此。无论如何都要模拟这个或者是否有一个我缺少的替代静态方法允许我开始在输入字符串中的特定位置搜索我的模式?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您使用像DotPeek这样的反汇编工具查看System.dll,您会看到静态函数的实现会创建一个新的Regex对象:

public static Match Match(string input, string pattern)
{
  return new Regex(pattern, RegexOptions.None, true).Match(input);
}

public static Match Match(string input, string pattern, RegexOptions options)
{
  return new Regex(pattern, options, true).Match(input);
}

所以实际上恰恰相反 - 静态功能的性能更差(或至少不是更好)。