如果编译正则表达式是最耗时的部分,那么最好有一个spring bean,它将在bean初始化期间编译项目中的所有正则表达式并使其(编译的正则表达式)可用于后续匹配目标字符串所需的任何类?我从来没有见过这样的东西 - 大部分时间,匹配模式的类也同时进行编译。每次进行模式匹配时编译都不是更耗时吗?
答案 0 :(得分:1)
如果你多次使用它,总是建议编译一次正则表达式。
正则表达式编译变得越来越昂贵,它变得越复杂,而且大多数时候我们一遍又一遍地做而没有意识到它。举个例子,这些便利方法(取自here)总是经历编制过程:
Pattern.matches
String.matches
String.replaceAll
String.replaceFirst
String.split
所以你应该始终牢记"方便"您调用和编译多次使用正则表达式的方法一次;无论是在启动时还是第一次使用它。