java 正则 预编译_正则表达式预编译功能的正确使用

在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。

同时,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 静态变量,以避免执行多次预编译。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值