我正在尝试提高某些代码的性能。它看起来像这样:
public boolean isImportant(String token) {
for (Pattern pattern : patterns) {
return pattern.matches(token).find();
}
}
我注意到许多模式似乎是没有正则表达式构造的简单字符串文字。所以我想简单地将它们存储在一个单独的列表(importantList)中并进行相等测试,而不是执行更昂贵的模式匹配,如下所示:
public boolean isImportant(String token) {
if (importantList.contains(token)) return true;
for (Pattern pattern : patterns) {
return pattern.matches(token).find();
}
}
如何以编程方式确定特定字符串是否不包含正则表达式结构?
编辑:我应该补充一点,答案不需要对性能敏感。(即可以使用正则表达式) 我主要关心 isImportant() 的性能,因为它被调用了数百万次,而模式的初始化只进行了一次。