我有1,000,000个字符串,我想分类。我这样做的方法是,如果它包含一组单词或短语,请将其存储起来。这组词大约是10,000。理想情况下,我可以支持正则表达式,但我现在专注于让它快速运行。示例短语:
福特,保时捷,马自达...我真的不想将每个单词与字符串逐个匹配,所以我决定使用正则表达式。不幸的是,我遇到了正则表达式问题:
Regexp.new( “(一)” * 253) => /(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)( A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(a)中(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A )(A)(A)(A)(A)...
Regexp.new( “(一)” * 254) RegexpError:正则表达式太大:/(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a) (A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)(A )(A)(A)(A)(A)(A)(A)(A)(A)(A)(A)...
其中a将是我的一个单词或短语。现在,我计划运行10,000/253场比赛。我读到正则表达式的长度会严重影响性能,但我的正则表达式匹配非常简单,并且正则表达式非常快。我想以某种方式绕过限制,或者如果有人有任何想法,可以使用更好的解决方案。感谢。
答案 0 :(得分:1)
您可能会考虑其他识别10k字的机制。