铁路图不显示表达式名称

2024-05-12 13:04:08 发布

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

使用pyparsing版本3.0.0a2生成一些铁路图,我最终得到了名为Group或Unnamed 1、2等的子图。不用说,几个不同的表达式都有名称Group。如何为每个表达式指定所需的名称

enter image description here


Tags: 版本名称表达式grouppyparsing铁路unnamed
1条回答
网友
1楼 · 发布于 2024-05-12 13:04:08

确保您正在对语法中的重要表达式调用setName

此表达式将显示为未命名:

# US social security numbers are of the form 000-00-0000
ssn = Word(nums, exact=3) + '-' + Word(nums, exact=2) + '-' + Word(nums, exact=4)

unnamed ssn railroad diagram

setName将名称附加到表达式:

ssn = (Word(nums, exact=3) 
       + '-' + Word(nums, exact=2) 
       + '-' + Word(nums, exact=4)).setName("social_security_number")

named ssn railroad diagram

请记住setNamesetResultsName之间的区别:

  • setName将名称附加到表达式本身(这是一个更加复杂的概念) 现在使用铁路图支持清除)

  • setResultsName指定要附加到解析结果的名称 由这个表达式提取

表达式只有一个名称,例如Word(nums)是一个“整数”。但该表达式可能在语法中的多个位置使用,因此可能有多个结果名。请参见此示例中如何多次使用real

real = Regex(r"\d+\.\d+").setName("real number")
lat_long = "(" + Char("NS") + real("latitude") + "," + Char("EW") + real("longitude") + ")"

相关问题 更多 >