2014-01-12 43 views
1

我正在編寫解析器,令牌由正則表達式標識。
我使用每個輸入行的正則表達式,雖然每個正則表達式本身很短,匹配的字符串也很短(幾個字符,最多10個)。使用預編譯的正則表達式模式提高速度

this後有一個使用JavaScript的瀏覽器的正則表達式速度比較測試,顯示速度從0%提高到20%。

java和android有什麼情況?它會使我的掃描顯着提高預編譯我的正則表達式嗎? (我知道它不會讓他們任何較慢
是否有最低數量的匹配,我必須在同一個正則表達式上運行以查看任何差異?

+3

你最好打賭就是測試它。 –

+0

@AndrewBarber當然,我想看看是否有人已經做到了。 – ilomambo

+1

不適用於* your *正則表達式,在您的應用程序中。這是重要的。 –

回答

1

首先,請記住,文章談論的Javascript正則表達式存儲在一個變量或不是。這與預先計算正則表達式AFAIK並不相同。

但是,即使是這樣;要真正知道哪個更好,您必須測試正在使用的實際正則表達式。如果一次使用超過幾次,這可能是值得的。

但是,如果您要運行許多「隨機」正則表達式,這可能不是一個好主意,因爲最終會產生很多正則表達式,懶惰,看電視,吃東西小吃......

所以,我的答案仍然是;在「真實世界」的情況下進行測試。即使這意味着釋放您的應用程序並稍後修改它。

+0

謝謝,我不知道JavaScript的細節,作者稱它爲「preCompiledReplaceRegex」,所以我認爲這是javascrpt預編譯正則表達式的方式。 – ilomambo

+0

@ilomambo Yup;說實話,我對這篇文章有點懷疑。我認爲在那裏可能會發生其他事情,特別是考慮到它在許多瀏覽器中確實沒有什麼區別。也就是說,Java是一個不同的故事,上面的內容適用於那裏。 –