我正在尝试构建一个解析器,它将通过一些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语句之间的文本,然后我可以解析并确定正在使用的数据字段?也许有更好的方法来做到这一点,但我正在撞墙。
答案 0 :(得分:2)
您的正则表达式可能匹配多个select语句,因为它在贪婪模式下工作。请尝试使用re.findall('sel.*?from', data)
。