我需要在用户更改源文件时对源文件中的某些模式进行大量搜索,因此我需要进行时间和内存高效的正则表达式匹配.模式重复,所以应该编译一次,但我需要能够检索子部分(而不是只是确认一个匹配)
我正在考虑使用java.util.regexp或Jakarta perl5util(如果它仍然存在,我使用它已经过了几年),或者可能是Eclipse搜索引擎,虽然我怀疑它更聪明.
这两者之间是否存在显着的性能差异?
我不确定在不同的regexp java引擎方面存在巨大的性能差距.
但是在构建正则表达式时确实存在性能问题(也就是说,如果数据足够大,正如Jeff Atwood所指出的那样)
你唯一应该避免的是灾难性的回溯,在使用原子分组时最好避免.
所以,默认情况下我会使用java.utils.regexp引擎,除非你有特定的perl兼容的regexp源,你需要在你的程序中重用.
然后我会仔细构建我打算使用的正则表达式.
但是,在选择一个引擎或其他...的期限,因为它已经被 说在许多 其他问题 ...:
"让它工作,快速 - 按顺序"
谨防"过早优化".