Needle是一个将正则表达式编译为JVM字节码的库,它将每个正则表达式编译为确定性有限自动机(DFA),然后编译为Java类。代码分析DFA以提取有助于更有效匹配的信息,检测可以使用String.indexOf找到的必需前缀、后缀和中缀,以及可以在while循环中轻松测试第一个字符的情况。与Java标准库和brics自动机库相比,Needle在各种基准测试中表现出优异的性能,特别是在可以使用String.indexOf缩小搜索空间的模式中。