【发布时间】:2009-10-04 20:48:12
【问题描述】:
Java 是否执行任何正则表达式优化?如果有,它们是什么?
我对正则表达式引擎级别的优化和更一般的使用级别优化都感兴趣。
(例如,在其他一些语言中,常用的正则表达式会被缓存以避免重新编译,但我目前所阅读的内容暗示 Java 不会自动执行此操作?)
要明确:
我不是询问如何优化实际的正则表达式本身。我在询问可能在正则表达式引擎内自动发生的操作。
【问题讨论】:
Java 是否执行任何正则表达式优化?如果有,它们是什么?
我对正则表达式引擎级别的优化和更一般的使用级别优化都感兴趣。
(例如,在其他一些语言中,常用的正则表达式会被缓存以避免重新编译,但我目前所阅读的内容暗示 Java 不会自动执行此操作?)
要明确:
我不是询问如何优化实际的正则表达式本身。我在询问可能在正则表达式引擎内自动发生的操作。
【问题讨论】:
根据 java.util.regex.Pattern 的 source code,compile() 方法不会尝试任何缓存优化。
接近尾声,有一段代码注释指出了peephole optimization的用法。
【讨论】: