如果要求是您需要确保在最初实例化Regex对象时仅计算一次表达式语法,那么正确的答案是什么。
var regExpPattern = @"somepatternhere";
Regex.Match(input, regExpPattern);
var evaluate = new Regex(regExpPattern);
var evaluate = new Regex(regExpPattern, RegexOptions.Compiled);
答案2或3是什么?
答案 0 :(得分:1)
第一个创建new Regex
和calls matches()
on it:
static MatchCollection Matches(String input, String pattern, RegexOptions options, TimeSpan matchTimeout) {
return new Regex(pattern, options, matchTimeout, true).Matches(input);
}
所以第一和第二几乎是相同的事情。
正如已经说过的那样,最后一个将是创造,但使用起来更快。
简而言之,如果您打算只使用一次Regex,请使用1)或2)。如果您计划运行循环或多次使用正则表达式,请选择第三种解决方案。