首页 > 解决方案 > pyparsing:根据条件使用字符

问题描述

所以我有两个用途的字符是双冒号' '。

我正在使用 pyparsing 解析包含字母数字(数字和字母)和 IP4/IPV6 地址的字符串。语法如下所示:

term = Word(alphanums + '.' + ':')

然后我在term. 现在的问题是,我也使用 infixNotation 作为 BooleanParserterm并且 OR 的运算符也是双冒号(顺便说一句,不能使用其他东西)。

exp = infixNotation(term,
            [
            (NOT, 1, opAssoc.RIGHT, Not_func),
            (AND, 2, opAssoc.LEFT, And_func),
            (':', 2, opAssoc.LEFT, Or_func),
            ])

我现在需要程序预先检查该术语是否为 IPV6 地址,如果是,则不应将双冒号视为 OR 的运算符,而应将其视为术语的一部分。

我在考虑可能对 IPV6 地址使用不同的语法,但我也需要布尔解析器。

有任何想法吗?

标签: pythonpyparsing

解决方案


推荐阅读