java.util.regexp足够高效吗?

Uri*_*Uri 6 java regex

我需要在用户更改源文件时对源文件中的某些模式进行大量搜索,因此我需要进行时间和内存高效的正则表达式匹配.模式重复,所以应该编译一次,但我需要能够检索子部分(而不是只是确认一个匹配)

我正在考虑使用java.util.regexp或Jakarta perl5util(如果它仍然存在,我使用它已经过了几年),或者可能是Eclipse搜索引擎,虽然我怀疑它更聪明.

这两者之间是否存在显着的性能差异?

Von*_*onC 9

我不确定在不同的regexp java引擎方面存在巨大的性能差距.

但是在构建正则表达式时确实存在性能问题(也就是说,如果数据足够大,正如Jeff Atwood指出的那样)

你唯一应该避免的是灾难性的回溯,在使用原子分组时最好避免.

所以,默认情况下我会使用java.utils.regexp引擎,除非你有特定的perl兼容的regexp源,你需要在你的程序中重用.

然后我会仔细构建我打算使用的正则表达式.

但是,在选择一个引擎或其他...的期限,因为它已经被 许多 其他问题 ...:

  • "让它工作,快速 - 按顺序"
  • 谨防"过早优化".