使用正则表达式的预编译功能,可以有效加快正则匹配速度。
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()) { ... } }