使用pyparsing
我希望将一个解析样式的匹配部分与名为names_list
的大型字符串列表相匹配。这个列表相当庞大(约20000个条目)。
我有兴趣找到 fast 方法来匹配此列表。 pyparsing.Or
表达式
names = pp.Or([pp.Keyword(name, caseless=True) for name in names_list ])
有效,但速度不是很快。
我该如何改进?关于这个的两个子问题:
是否值得用另一个运算符替换Or
运算符(如果我可能按某种标准对names_list
进行预排序)?
列表表达式names
将在较大表达式的多个部分中出现(例如,在正常解析中以及另外在stopOn=
表达式中。在两种情况下,它将匹配相同的解析字符串中的真实部分。有没有办法用它来加速匹配?
旁注:此问题有a sister question。在姐妹问题中,我立刻询问了很多事情 - 这就是为什么我把(未答复的)部分分开的原因。