【问题标题】:Python/Regex to parse codePython/Regex 来解析代码
【发布时间】:2013-04-14 17:14:41
【问题描述】:

所以我在 FORTRAN 中有一些看起来像这样的行。

call const (hsno, npoi*nsnolay, 0.0)

我一直在使用正则表达式和 python 字符串函数来解析这段代码并编辑一些变量。然而,像上面这样的行给了我一个问题,因为字符串不会在括号上分裂。

我希望它是:

[(,hsno, npoit, * nsnolay, 0.0, )]. 

但是它的作用是

[(hsno,...]

如果后面跟一个单词和一个逗号,我希望它在括号上分开

有没有一种简单的方法可以做到这一点。

【问题讨论】:

  • 你当前的正则表达式是什么?

标签: python regex parsing


【解决方案1】:

匹配的括号不是常规语言。这意味着它们不能被数学意义上的正则表达式识别。大多数编程语言都添加了额外的功能来使正则表达式更强大,但是做这样的事情仍然很痛苦。

我建议您使用合适的解析器。我喜欢 Python 的一个叫 Ply。

【讨论】:

  • Ragel 状态机编译器能够以 Python 为目标,非常适合从状态机创建解析器。
猜你喜欢
  • 2021-11-10
  • 2020-10-11
  • 2023-01-13
  • 2015-02-24
  • 2016-09-10
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多