【问题标题】:python package for parsing strings based on a grammar [closed]用于基于语法解析字符串的python包[关闭]
【发布时间】:2022-01-04 11:04:14
【问题描述】:

我有一个命令行工具,它通过

读取输入字符串
input = ...

现在,我想检查不同情况的输入字符串(有多少字,第二个字是数字,关键字,...)。基本上,我想根据常规语法解析字符串。我只有少数案例,但所有 if 语句看起来都很糟糕。此外,匹配/大小写在这里并没有真正的帮助,因为我想检查一个单词是否代表一个数字等条件。

有没有实现语法解析器的python包?

【问题讨论】:

  • 一般来说,你无法避免编程。有很多模块,您可以使用built-in methods of str 和/或regular expressions 覆盖大多数情况。如果你有一些特定的任务,你可以询问它,但当前的问题太宽泛,无法给出准确的答案。 P.S.请勿使用input或任何其他内置名称class/function作为变量名称。
  • 不幸的是,要求图书馆或其他场外资源在这里显然是无关紧要的,因为它们以无序的答案列表结尾,每个答案都提供了他们使用的图书馆。但如果你习惯 lex 和 yacc 解析(BNF 语法),PLY 是它的 Python 端口。

标签: python python-3.x string parsing grammar


【解决方案1】:

你有这个库,但你必须自己写语法:https://github.com/lark-parser/lark

有关编写解析器的信息,请参阅“Dragon book”。

【讨论】:

    【解决方案2】:

    我会使用 SpaCy 的 linguistic featuresrules-based matching 也可能有用。有一个web-based demo,因此您可以查看它是否是您正在寻找的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多