PyParsing:是否可以全局抑制所有文字?
PyParsing: Is it possible to globally suppress all Literals?
我有一个简单的数据集,可以使用如下行进行解析:
R1 (a/30) to R2 (b/30), metric 30
以上我需要的唯一数据如下:
R1, a, 30, R2, 192.168.0.2, 30, 30
我可以使用 pyparsing 轻松解析所有这些内容,但我要么在输出中得到一堆文字,要么我必须在解析语法中专门说 Literal(thing).suppress()
,这很烦人。
理想情况下,我想为上面的内容写一个语法:
Word(alphanums) + '(' + Word(alphanums) + '/' + Word(nums) + ... etc.
并忽略文字标记。我可以说 .suppressAllLiterals()
吗?
备注:
- PyParsing 新手
- 我已阅读文档和 5 或 6 个示例
- 已搜索 google
谢谢!
您可以在 ParserElement
上使用此方法 - 在导入 pyparsing 后立即调用它:
from pyparsing import ...whatever...
ParserElement.inlineLiteralsUsing(Suppress)
现在,解析器中的所有字符串文字都将包装在 Suppress
对象中,并排除在结果之外,而不是默认的 Literal
.
(我可能会在 v3.0 中将其设为默认值,有一天,当我可以打破向后兼容性时。)
我有一个简单的数据集,可以使用如下行进行解析:
R1 (a/30) to R2 (b/30), metric 30
以上我需要的唯一数据如下:
R1, a, 30, R2, 192.168.0.2, 30, 30
我可以使用 pyparsing 轻松解析所有这些内容,但我要么在输出中得到一堆文字,要么我必须在解析语法中专门说 Literal(thing).suppress()
,这很烦人。
理想情况下,我想为上面的内容写一个语法:
Word(alphanums) + '(' + Word(alphanums) + '/' + Word(nums) + ... etc.
并忽略文字标记。我可以说 .suppressAllLiterals()
吗?
备注:
- PyParsing 新手
- 我已阅读文档和 5 或 6 个示例
- 已搜索 google
谢谢!
您可以在 ParserElement
上使用此方法 - 在导入 pyparsing 后立即调用它:
from pyparsing import ...whatever...
ParserElement.inlineLiteralsUsing(Suppress)
现在,解析器中的所有字符串文字都将包装在 Suppress
对象中,并排除在结果之外,而不是默认的 Literal
.
(我可能会在 v3.0 中将其设为默认值,有一天,当我可以打破向后兼容性时。)