From 035aafdceed21bf49b5c5c79daf189df05568533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=91=E6=89=8D=E6=98=AF=E4=BA=8C=E4=BA=AE?= Date: Mon, 7 Mar 2016 11:21:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dissue1=20Bug=EF=BC=8C?= =?UTF-8?q?=E6=AD=A3=E5=88=99=E4=BD=BF=E7=94=A8=E4=B8=8D=E5=90=88=E9=80=82?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FileParserClass.py | 20 ++++++++++++-------- test.py | 0 2 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 test.py diff --git a/FileParserClass.py b/FileParserClass.py index 816dbcb..b46fcdc 100644 --- a/FileParserClass.py +++ b/FileParserClass.py @@ -9,7 +9,7 @@ class FileParser: # 定义分离SQL文件匹配模式 # table_pattern = r'CREATE TABLE([\s\S]*?)LOCK TABLES' #分离表 table_pattern = r'CREATE TABLE([\s\S]*?);' - name_pattern = r'`(.*?)`' # 获取表名称或字段名称 + name_pattern = r'.*?`(.*?)`.*?' # 获取表名称或字段名称 table_content_pattern = r'COMMENT=\'(.*?)\'' #获取表详情 def separatTable(self, content): @@ -40,8 +40,10 @@ class FileParser: for i in range(len(dirty_table_name)): tmp = [] # 从脏数据中取出表名 + # print dirty_table_name[i].strip() name = re.match(self.name_pattern, dirty_table_name[i].strip()) if name != None: + # print name.group(1) tmp.append(name.group(1)) # 从脏数据中取出表含义 @@ -81,15 +83,17 @@ class FileParser: column_name = column_name.group(1) column_type = tmp_list[1] # TODO:此处无法正确匹配,使用取列表最后一项,可能会有bug - # column_comment = re.match(r'COMMENT \'(.*?)\'', column.strip()) - # if column_comment is not None: - # column_comment = column_comment.group(1) - # else: - # column_comment = '' - if '\'' in tmp_list[-1]: - column_comment = tmp_list[-1][1:-2] + column_comment = re.match(r'.*?COMMENT \'(.*?)\'.*?', column.strip()) + if column_comment is not None: + column_comment = column_comment.group(1) else: column_comment = '' + + + # if '\'' in tmp_list[-1]: + # column_comment = tmp_list[-1][1:-2] + # else: + # column_comment = '' column_tmp.append([column_name, column_type, column_comment]) table_data.append([table_name[i], column_tmp]) return table_data \ No newline at end of file diff --git a/test.py b/test.py new file mode 100644 index 0000000..e69de29