使用python

时间:2016-02-11 02:15:26

标签: python parsing

我正在尝试构建一个解析器,它将通过一些SQL脚本并获取正在使用的数据字段,表等。我开始尝试抓住字段名称。 SQL脚本都具有以下基本结构:

select x,y,z,.. from table # sometimes it will be sel instead of select

这通常会在任何脚本中多次出现。

我已经设置了以下python代码:

import csv
import re

def parser():                                     

           f=open('Book1.txt','r')
           data = f.read()
           print re.findall('sel.*from',data) 

我只通过此获得一个select语句。为什么这不会给我所有的select语句之间的文本,然后我可以解析并确定正在使用的数据字段?也许有更好的方法来做到这一点,但我正在撞墙。

1 个答案:

答案 0 :(得分:2)

您的正则表达式可能匹配多个select语句,因为它在贪婪模式下工作。请尝试使用re.findall('sel.*?from', data)