解析用户表达式以格式化错误

时间:2011-09-20 20:48:16

标签: python regex parsing

User提供包含Python表达式的字符串:"a==(1,1) and {b==2 or c==foo}"

我正在尝试编写一个检查以下规则的解析器:

  1. 逻辑表达式(orand)之前和之后需要有空格
  2. 花括号前后需要有空格
  3. 表达式中应该没有空格(a ==(1,1)无效)
  4. 我发现了“解析器”模块,但我不确定我是否理解它。

    通过多个正则表达式建立所有规则(通过char读取字符串char并确保满足规则)非常繁琐。

    解决这个问题最优雅的方法是什么?

1 个答案:

答案 0 :(得分:0)

我说的最优雅的方式是使用像pyparsing这样的东西,一个真正的解析器和“pythonic”易用性。

对于小型项目来说可能有点过分,但是开始并不难,并且会在语法上有很大的增长。软件需求总是朝着一个方向发展,因此我建议尝试一下。