我有如下所示的代码,用于检测字符串是否与正则表达式匹配,两者都作为此方法的参数发送。
private bool Set(string stream, string inputdata)
{
bool retval = Regex.IsMatch(inputdata, stream, RegexOptions.IgnoreCase);
return retval;
}
我已经读过缓存和编译表达式将使正则表达式比较更快,我有一个下面显示的此类代码示例,但我不知道如何在Set()
上面的原始方法中修改代码以利用汇编。
我将如何修改Set()
方法以应用下面显示的代码?
static Dictionary<string, Regex> regexCache = new Dictionary<string, Regex>();
private Regex BuildRegex(string pattern)
{
Regex exp;
if (!regexCache.TryGetValue(pattern, out exp))
{
var newDict = new Dictionary<string, Regex>(regexCache);
exp = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
newDict.Add(pattern, exp);
regexCache = newDict;
}
return exp;
}
而不是Regex.IsMatch
,我使用exp.IsMatch
,但这是一个私有变量,所以我不知道如何继续。