java.util.regex是否缓存已编译的模式?

时间:2014-04-13 02:35:35

标签: java regex

来自PCRE Introduce

  

此扩展维护已编译正则表达式的全局每线程缓存(最多4096)。

java.util.regex怎么样,这会缓存已编译的模式吗?

因为有时我不想引入太多变量来存储模式。

2 个答案:

答案 0 :(得分:2)

  

java.util.regex怎么样,这会缓存已编译的模式吗?

根据源代码,不在Java 6或7中。

我的记忆是静态Pattern.compile(...)方法 实现了一个小缓存,但可能是Java 6中删除了该功能。

如果要在Java中实现Pattern缓存,可以通过各种方式自行完成。 (或者,谷歌搜索“java正则表达式缓存”给了我一些有用的点击...)

答案 1 :(得分:0)

如果您创建一个Pattern对象,它会编译正则表达式,只要您持有该对象,它就会被“缓存”以供进一步使用。您可以通过using a single Matcher object提高应用效率。