當您使用正則表達式實例時,該方法在其中調用該方法幾千次來解析事件的方法中使用,如果該方法包含正則表達式實例,或者正則表達式實例是否爲類作爲靜態成員?在哪裏存儲正則表達式?
我感覺初始化相同的正則表達式數千次可能是開銷。但我主要關心的是最佳做法。
我應該在哪裏聲明和定義正則表達式?
編輯:僞代碼:
static Regex regex ...
IEnumerable<string> Parse (string str)
{
var matches = // use regex
foreach (var match in matches)
{
...
}
}
void Main()
{
foreach (var page in pages)
{
Parse (page); ...
}
}
是因爲創建新的Regex實例很昂貴。我似乎記得閱讀這樣的東西,但不知道。 – 2010-03-05 17:41:04
@Joan:對我來說,更多的是關於設計原則。我會編輯我的答案。 – Tanzelax 2010-03-05 17:46:20
如果你打算在不同的地方稱它爲幾次,那麼我認爲可能使它與靜態的RegexOptions.Compiled會有所幫助。也許有人知道多一點會給答案解釋RegexOptions.Compiled的好處? – 2011-02-28 11:20:06