python - Python中的递归嵌套表达式

标签 python regex nested expression

我正在使用 Python 2.6.4。

我在文本文件中有一系列选择语句,我需要从每个选择查询中提取字段名称。如果某些字段不使用嵌套函数(如 to_char() 等),这将很容易。

给定可能有多个嵌套括号的 select 语句字段,如“ltrim(rtrim(to_char(base_field_name, format))) renamed_field_name”,或者只是“base_field_name”作为字段的简单情况,是否可以使用 Python 的 re编写正则表达式以提取 base_field_name 的模块?如果是这样,正则表达式会是什么样子?

最佳答案

正则表达式不适合解析“嵌套”结构。相反,请尝试使用成熟的解析工具包,例如 pyparsing -- 可以找到专门使用 pyparsing 解析 SQL 的示例 herehere ,例如(毫无疑问,您需要以这些示例为起点,并编写您自己的一些解析代码,但是,这绝对不是太难)。

关于python - Python中的递归嵌套表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174015/

相关文章:

python - 使用 Python 将多个关系表转换为嵌套的 JSON 格式

python - 计算 X 和 Y 坐标之间的值

regex - 在 OS X 上 sed - 似乎无法在正则表达式中使用 +

python - 如何使用正则表达式从文本中构建 python 列表?

c++ - POSIX 正则表达式不匹配

ruby-on-rails - 如何删除嵌套在主题内的帖子内的评论?

mysql - 支持在同一个表中选择和更新,创建按日期排名

python - 如何从字符串中为 bcrypt.hashpw 创建一个非随机盐

python - 为什么这两种计算总和的方法会产生不同的运行时间

python - 在构造函数中使用 **kwargs 时意外的关键字参数