Spring bean编译所有正则表达式

时间:2017-04-07 22:06:38

标签: java regex

如果编译正则表达式是最耗时的部分,那么最好有一个spring bean,它将在bean初始化期间编译项目中的所有正则表达式并使其(编译的正则表达式)可用于后续匹配目标字符串所需的任何类?我从来没有见过这样的东西 - 大部分时间,匹配模式的类也同时进行编译。每次进行模式匹配时编译都不是更耗时吗?

1 个答案:

答案 0 :(得分:1)

如果你多次使用它,总是建议编译一次正则表达式。

正则表达式编译变得越来越昂贵,它变得越复杂,而且大多数时候我们一遍又一遍地做而没有意识到它。举个例子,这些便利方法(取自here)总是经历编制过程:

  • Pattern.matches
  • String.matches
  • String.replaceAll
  • String.replaceFirst
  • String.split

所以你应该始终牢记"方便"您调用和编译多次使用正则表达式的方法一次;无论是在启动时还是第一次使用它。