问题标签 [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.

0 投票
1 回答
183 浏览

python - 去除标签内容以外的文本

使用 pyparsing 可以实现相反的效果,如下所示:

我怎样才能保留标签的内容"table"

更新0:

我试过: # 只保留表格 tableOpen, tableClose = makeHTMLTags("table") tableBody = tableOpen + SkipTo(tableClose) + tableClose f = replaceWith(tableBody) tableBody.setParseAction(f) data = (tableBody).transformString(data)打印数据

我得到这样的东西......

更新 2:

谢谢马泰利。我需要的是:

0 投票
5 回答
4359 浏览

python - pyparsing 之后的下一步是什么?

作为大型纯 Python 应用程序的一部分,我为 pyparsing 开发了一个巨大的语法。我已经达到了性能调整的极限,我正处于收益递减让我开始寻找其他地方的地步。是的,我想我知道大部分的技巧和窍门,而且我已经把我的语法和我的应用程序化为尘土。

接下来是什么?

我希望找到一个解析器,它可以给我同样的可读性、可用性(我正在使用 pyparsing 的许多高级功能,例如 parse-actions 来开始对正在解析的输入进行后处理)和 python 集成,但在 10 倍性能

我喜欢语法是纯 Python 的事实。

我所有的基本块都是正则表达式,所以重用它们会很好。

我知道我不能拥有一切,所以我愿意放弃我今天拥有的一些功能,以达到要求的 10 倍性能。

我从这里去哪里?

0 投票
1 回答
1162 浏览

python - 使用 pyparsing “解析”列表

是否可以给 pyparsing 一个解析列表并让它返回原始字符串?

0 投票
1 回答
724 浏览

python - 如何运行需要 pyparsing 的 python 脚本?

我得到了一个 python 文件,它使用了一个叫做 pyparsing 的东西,但是当我运行它时,它显示一个错误,需要 pyparsing :)谢谢

0 投票
1 回答
341 浏览

python - pyparsing 匹配指定文字的任意组合

示例:我有文字“alpha”、“beta”、“gamma”。如何让 pyparsing 解析以下输入:


给定的输入可以通过使用给定集合中的一个或多个非重复文字来构造,用“|”分隔。将不胜感激有关设置 pyparsing 的建议。

0 投票
3 回答
5646 浏览

python - 使用 PyParsing 解析 Snort 日志

使用 pyparsing 模块解析 Snort 日志时出现问题。

问题在于分离 Snort 日志(它具有多行条目,由空行分隔)并让 pyparsing 将每个条目解析为一个整体,而不是逐行读取并期望语法与每一行一起工作(显然, 它不是。)

我尝试将每个块转换为临时字符串,去掉每个块内的换行符,但它拒绝正确处理。我可能完全走错了路,但我不这么认为(类似的形式非常适用于 syslog 类型的日志,但这些是单行条目,因此适合您的基本文件迭代器/行处理)

这是一个日志示例和我到目前为止的代码:

和更新的代码:

非常感谢任何帮助、指针、RTFM、您做错了等。

0 投票
1 回答
2798 浏览

python - python:用 BNF 或 pyparsing 替换正则表达式

我正在解析一个相对简单的文本,其中每一行都描述了一个游戏单元。我对解析技术知之甚少,因此我使用了以下临时解决方案:

它工作正常,但我觉得我达到了正则表达式功能的极限。具体来说,在 Traits 的情况下,该值最终是一个字符串,我需要稍后将其拆分并转换为列表:例如,obj.Traits 在此代码中将设置为“Motorized Armored”,但在后来的功能改为('机动','装甲')。

我正在考虑将此代码转换为使用 EBNF 或 pyparsing 语法或类似的东西。我的目标是:

  • 让这段代码更整洁,更不容易出错
  • 避免使用值列表对案例进行丑陋的处理(我需要先在正则表达式中进行替换,然后对结果进行后处理以将字符串转换为列表)

您对使用什么以及如何重写代码有什么建议?

PS我跳过了代码的某些部分以避免混乱;如果我在此过程中引入了任何错误,抱歉 - 原始代码确实有效 :)

0 投票
4 回答
2555 浏览

python - 如何使用pyparsing解析小数表达式?

到目前为止,我们刚刚开始尝试 pyparsing 并喜欢它,但我们无法让它帮助我们解析小数字符串以将它们转换为数字数据类型。

例如,如果数据库表中的列值包含字符串:

1 1/2

我们想要某种方法将其转换为数字 python 等价物:

1.5

我们想做一个不关心分数中的数字是整数还是实数的解析器。例如,我们想要:

1.0 1.0/2.0

...仍然翻译为:

1.5

本质上,我们希望解析器在概念上执行以下操作:

“1 1/2” = 1 + 0.5 = 1.5

下面的示例代码似乎让我们接近......

http://pyparsing.wikispaces.com/file/view/parsePythonValue.py

...但距离不够近,无法取得进展。我们制作小数处理程序的所有测试仅返回表达式 (1) 的第一部分。提示?提示?及时的智慧?:)

0 投票
2 回答
1337 浏览

python - python解析2个已知行之间的文本块

我正在尝试使用 pyparsing 在 2 条已知行之间获取一行行。例如:

我的python代码:

--> 但它不起作用。Python只是挂起。谁能告诉我怎么做?

谢谢,

0 投票
2 回答
3706 浏览

python - pyparsing、转发和递归

我正在使用 pyparsing 解析 vcd(值更改转储)文件。本质上,我想读入文件,将其解析为内部字典,然后操作值。

在不详细介绍结构的情况下,我的问题在于识别嵌套类别。

在 vcd 文件中,您有“范围”,其中包括电线和可能一些更深(嵌套)的范围。把它们想象成关卡。

所以在我的文件中,我有:

所以“顶层”包含一切(a - i),“中层”有(a - b),“超层”有(f - g)等。

这是我用于解析此部分的代码(片段):

现在,我发生的是,当它到达每个范围时,它会跟踪每个“级别”,我最终会得到一个包含嵌套范围的结构。但是,它会出错

说它需要'$ upscope'。

所以我知道我没有正确使用递归。有人可以帮我吗?如果我需要提供更多信息,请告诉我。

谢谢!!!!