是否可以将正则表达式快捷方式匹配?

Ben*_*n S 0 java regex optimization performance

我有几个正则表达式针对非常长的字符串运行.然而,关于RE的字符串的唯一部分接近开头.大多数RE类似于:

\\s+?(\\w+?).*
Run Code Online (Sandbox Code Playgroud)

RE在开始附近捕获了几个组,并不关心字符串的其余部分.出于性能原因,有没有办法让RE引擎避免查看终止所消耗的所有字符.*

注意:带有RE的应用程序是使用java.regex类编写的.

编辑:例如我有以下RE:

.*?id="number"[^>]*?>([^<]+?).*
Run Code Online (Sandbox Code Playgroud)

哪个是针对存储为StringBuilders的大型HTML文件运行的.标签id="number"始终位于HTML文件的开头附近.

Gre*_*ill 6

使用java.util.regex类时,有许多方法可以匹配给定的字符串.Matcher.matches始终匹配整个输入字符串.在输入字符串中的某处Matcher.find查找与正则表达式匹配的内容.最后,将正则表达式与输入字符串的开头匹配.Matcher.lookingAt

如果您正在使用Matcher.matches,则可能需要.*在最后匹配整个字符串.但是,您可能最好使用其他方法之一,这将允许您放弃.*.听起来Matcher.lookingAt可能适合您的目的.