我有[a-z] *形式的正则表达式列表(例如你的*)。我需要找到从正则表达式列表中的常规文本文件中读取的单词的可能匹配项。我可以为每个列表项使用Pattern类,然后使用matcher将该单词与列表中的每个成员进行匹配,但此过程似乎很耗时。正则表达式列表很大(大约2500个表达式),我需要匹配的单词数也很大(以百万计),所以我需要快速的东西 - 它应该是Java。有没有更好的方法从正则表列表中搜索单词的正则表达式匹配?
答案 0 :(得分:0)
如果您的所有表达式都采用foo*
形式,那么您是否可以将所有模式匹配尝试替换为word.startsWith(pattern)
的调用? (首先从模式中修剪'*',如果是实际包含在模式列表中的话。)或者 - 如果'*'是可选的 - 根据模式,word.equals(pattern)
的那个是什么?
答案 1 :(得分:0)
我使用Trie树解决了这个问题。 - Farig Sadeque