python - 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 地址使用不同的语法,但我也需要布尔解析器。
有任何想法吗?
解决方案
推荐阅读
- java - Velocity 模板无法呈现,因为其中一个字符串变量包含 $ 字符
- linux - Terraform init/plan/apply 没有互联网主机
- azure-data-explorer - 如何在不使用分区的情况下在 KUSTO 上执行 SQL PARTITION?
- ariadne-graphql - 如何在 ariadne graphql 中指定查询的最大深度限制?
- javascript - 用重复的外键序列化多对多关系
- python - pandas .to_csv 文件位置错误 OSError: [Errno 22] Invalid argument
- reactjs - 安装 react 应用时出错
- python - 我无法从本网站的超链接中抓取 URL。| 网络爬虫,Python
- oracle - 为什么 Azure 数据工厂使用 ADF COPY 将我的 ORACLE 编号 (10,0) 存储为 PARQUET 十进制 (38,10)?
- excel - Office(365、Powerpoint、Excel、Word):将“打开文件位置”放在快速访问工具栏和/或键盘快捷键中