问题标签 [pyparsing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 pyparsing 查找以下标签
我正在使用 pyparsing 来解析 HTML。我正在抓取所有embed
标签,但在某些情况下,a
紧随其后的是一个标签,如果它可用,我也想抓取它。
例子:
我无法在结果对象中找到任何字符偏移量,否则我只能抓取原始输入字符串的一部分并从那里开始工作。
编辑:
有人问我为什么不用 BeautifulSoup。这是一个很好的问题,让我告诉你为什么我选择不将它与代码示例一起使用:
当我尝试这个时,BeautifulSoup 在20-30% 的时间里会因为解析错误而失败。这些不是罕见的边缘情况。pyparsing 既慢又麻烦,但无论我扔什么它都没有爆炸。如果我能对使用 BeautifulSoup 的更好方法有所启发,那么我会很想知道这一点。
python - Python:使用 Pyparser 的测试数据的无效语法
使用 pyparser,我正在尝试为 S-Expression 语言创建一个非常简单的解析器。我写了一个很小的语法。这是我的代码:
在查看此代码的示例时,似乎一切都很好,但是在运行时我收到此行的语法错误
我不明白。我将不胜感激
python - 如何在 pyparsing 中为此编写语法:匹配一组单词但不包含给定模式
我是 Python 和 pyparsing 的新手。我需要完成以下工作。
我的文本示例行是这样的:
我需要提取项目描述,期间
这该怎么做?
python - 调试 Pyparsing 语法
我正在为一种名为 C-- 的虚构编程语言(不是实际的 C-- 语言)构建一个解析器。我已经到了需要将语言的语法翻译成 Pyparsing 可以接受的阶段。不幸的是,当我解析我的输入字符串(这是正确的,不应该导致 Pyparsing 出错)时,它没有正确解析。我担心这是由于我的语法错误造成的,但是当我第一次开始 Pyparsing 时,我似乎看不出哪里出错了。
我已经上传了我从这里翻译的语法,供人们阅读。
编辑:根据保罗的建议进行了更新。
这是我目前得到的语法(我知道语法定义的前两行对我来说非常糟糕):
我想知道我在翻译语法时是否犯了任何错误,以及在遵守给定语法的同时我可以做哪些改进来简化它。
编辑 2:更新以包含新错误。
这是我正在解析的输入字符串:
这是我从终端运行程序时收到的错误消息:
pyparsing - scanString 结束位置:为什么是 end_index+1?
蟒蛇/pyparsing
当我使用 scanString 方法时,它会在文本中给出匹配标记的开始和结束位置。
例如
我得到以下信息:
但是猫结束位置应该是“2”吧?为什么将下一个位置报告为结束位置?
python - 我应该如何使用 pyparsing 组织我的函数?
我正在用 python 和pyparsing解析一个文件(它是 Matlab 中PSAT的报告文件,但这并不重要)。这是我到目前为止所拥有的。我认为这是一团糟,想就如何改进它提出一些建议。具体来说,我应该如何使用 pyparsing 组织我的语法定义?
我应该将所有语法定义都放在一个函数中吗?如果是这样,这将是一个巨大的功能。如果没有,那我该如何打破它。目前,我已将其拆分为文件的各个部分。是否值得大量只从一个地方调用一次的函数。对我来说,两者都不是正确的。
我应该将我所有的输入和输出代码放在一个单独的文件中,以供其他类函数使用吗?这将使课堂的目的更加清晰。
我也很想知道是否有更简单的方法来解析文件、进行一些完整性检查并将数据存储在一个类中。我似乎花了很多时间做这件事。
(如果人们同意,我会接受它足够好的答案或使用 X 而不是 pyparsing )
python - Pyparsing 中的关键字匹配:令牌的非贪婪 slurping
蟒蛇爱好者:
假设您想使用 Pyparsing 解析以下字符串:
wereABC_123
是一个标识符;SPEED_X
是一个参数,123
是一个值。我想到了使用 Pyparsing 的以下 BNF:
如果我从中间删除下划线(并Entry
相应地调整定义)它会正确解析。
我怎样才能让这个解析器变得更懒一点,然后等到它与关键字匹配(而不是将整个字符串作为标识符并等待_
不存在的 .
谢谢你。
[注意:这是对我的问题的完全重写;我还没有意识到真正的问题是什么]
python - 使用 pyparsing 进行部分评估
我需要能够采用使用 OpenDocument 公式语法的公式,将其解析为 Python 可以理解的语法,但无需评估变量,然后能够通过改变变量的值来多次评估公式。公式可以是用户输入,因此 pyparsing 让我既可以有效地处理公式语法,又可以清理用户输入。有许多很好的 pyparsing 示例可用,但所有数学示例似乎都假设一个人立即评估当前范围内的所有内容。
就上下文而言,我正在使用工业经济模型(生命周期评估,或 LCA),其中这些公式表示过程之间的材料或能量交换量。可变数量可以是几个参数的函数,例如地理位置。公式链和变量引用存储在有向无环图中,因此始终可以简单地评估公式。公式作为字符串存储在数据库中。我的问题是:
- 是否可以解析一个公式,以便解析后的评估也可以存储在数据库中(作为要评估的字符串或其他东西)?
- 这种方法有替代方案吗?请记住,理想的解决方案是解析/写入一次,然后读取多次。例如,部分解析公式,然后使用 ast 模块,虽然我不知道这如何与数据库存储一起使用。
- 我可以查看与此类似的项目或库的任何示例吗?我不是程序员,只是一个在业余时间制作开源 LCA 软件模型的学生试图完成他的论文。
- 这种方法是不是太慢了?我希望能够进行大量的蒙特卡洛运行,每次运行可能涉及数以万计的公式评估(这是一个大数据库)。
python - 如何使用 pyparsing 解析和散列被特殊字符包围的字符串?
我见过的大多数 pyparsing 示例都处理线性表达式。
a = 1 + 2
我想解析 mediawiki 标题,并将它们散列到它们的部分。
例如
字典看起来像:
如果我只能看到这种“封闭”(==HEADLINE==)解析的一个示例,我就可以继续查看链接/图像/文件等。
python - Pyparsing - 令牌的顺序不可预测
我希望能够从一段文本中提取字母的类型和数量,其中字母可以按任何顺序排列。我还在进行其他一些解析,但这一点让我很困惑!
我可以使用搜索或扫描并重复每个可能的字母,但是有没有一种干净的方法呢?
据我所知: