之间有什么区别?
foo = TOKEN1 + TOKEN2
和
foo = Combine(TOKEN1 + TOKEN2)
谢谢。
更新:根据我的实验,似乎
Combine()
用于终端,您要在其中构建要匹配的表达式,而普通+
用于非终端。但是我不确定。 最佳答案
合并有2种效果:
如果您创建类似的表达式
realnum = Word(nums) + "." + Word(nums)
然后
realnum.parseString("3.14")
将返回3个 token 的列表:前导“3”,“。”和后缀“14”。但是,如果将其包装在Combine中,如下所示:realnum = Combine(Word(nums) + "." + Word(nums))
然后
realnum.parseString("3.14")
将返回“3.14”(您可以使用解析 Action 将其转换为浮点数)。并且由于Combine禁止pyparsing的默认空白在标记之间跳过,因此您不会在“答案为3。14是下一个答案”中偶然发现“3.14”。关于python - PyParsing:Combine()有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2940489/