PyParsing:Combine()做什么?

2024-04-26 00:01:15 发布

您现在位置:Python中文网/ 问答频道 /正文

有什么区别:

foo = TOKEN1 + TOKEN2

以及

^{pr2}$

谢谢。在

更新:根据我的实验,似乎Combine()是用于终端的,您试图在其中构建一个匹配的表达式,而普通的+是用于非终端的。但我不确定。在


Tags: 终端foo表达式区别combinepr2token2token1
1条回答
网友
1楼 · 发布于 2024-04-26 00:01:15

组合有两种效果:

  • 将所有的符号连接到一个字符串中

  • 它要求匹配的令牌都是相邻的,没有中间空格

如果你创建一个表达式

realnum = Word(nums) + "." + Word(nums)

然后realnum.parseString("3.14")将返回一个由3个标记组成的列表:前导的“3”、“.”和尾随的“14”。但如果您将其包装在Combine中,如:

^{pr2}$

然后realnum.parseString("3.14")将返回“3.14”(然后可以使用解析操作将其转换为float)。由于Combine禁止pyparsing在标记之间跳过默认的空白,所以您不会意外地在“答案是3”中找到“3.14”。14是下一个答案。”

相关问题 更多 >