使用正则表达式.匹配静态方法查找从特定位置开始的匹配

本文关键字:定位 位置 开始 查找 正则表达式 静态方法 | 更新日期: 2023-09-27 18:01:26

Microsoft提供了一个名为Match的方法,用于匹配从输入字符串中的特定位置开始的Regex模式。我试图做的是通过使用Match的静态方法版本来优化程序的性能,从而获得缓存的好处。似乎没有一种方法可以指定一个特定的位置来开始匹配,尽管成员版本有。是否有任何方式来模拟这个,或者有一个替代的静态方法,我错过了,允许我开始搜索我的模式在输入字符串的特定位置?

使用正则表达式.匹配静态方法查找从特定位置开始的匹配

如果您使用像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);
}

所以实际上正好相反——静态函数的性能更差(或者至少不是更好)