我有一個匹配正則表達式的包裝類。顯然,你可以像這樣編譯一個正則表達式爲Pattern
。Java正則表達式庫是否針對任何字符進行優化?
Pattern pattern = Pattern.compile(regex);
但假設我使用.*
來指定任意數量的字符。所以它基本上是一個通配符。
Pattern pattern = Pattern.compile(".*");
模式優化是否總是返回true並且沒有真正計算任何東西?或者我應該讓我的包裝實現優化?我這樣做是因爲我可以在一個流程中輕鬆處理數十萬個正則表達式操作。如果一個正則表達式參數爲null我把它合併到.*
我不知道有像那些在PCRE內部優化,從而,我推薦使用所有格量詞用於這種圖案(或當''是在圖案的端部),例如'。* +'發揮它的安全。 –
這是有道理的,使其懶惰,雖然我不知道它會如何處理。我無法想象它不會更快地恢復。 – tmn
不,懶惰的量詞不是解決方案。我會在幾分鐘內發佈答案。 –