正則表達式預編譯功能的正確使用


在使用正則表達式時,利用好其預編譯功能,可以有效加快正則匹配速度。

同時,Pattern要定義為static final靜態變量,以避免執行多次預編譯。

 

下面,我們列舉兩類使用正則的場景,來具體說明預編譯該如何使用:

【錯誤用法】

// 沒有使用預編譯
private void func(...) {
if (Pattern.matches(regexRule, content)) {
...
}
}
// 多次預編譯
private void func(...) {
Pattern pattern = Pattern.compile(regexRule);
Matcher m = pattern.matcher(content);
if (m.matches()) {
...
}
}
【正確用法】

private static final Pattern pattern = Pattern.compile(regexRule);

private void func(...) {
Matcher m = pattern.matcher(content);
if (m.matches()) {
...
}
}
正則的預編譯主要注意兩點:

1.  Pattern 表達式要提前定義,不要再需要的地方臨時定義;

2. Pattern 表達式要定義為 static final 靜態變量,以避免執行多次預編譯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM