sql="""--acc_books
insert into acc_books(id,name,db_pref,flag,type,text1,text2,text3,text4,text5,flag1,flag2,flag3,flag4,flag5,remark,data_type,book_year,book_code,area_code,split_str,storage_location,date_stamp,set_year)
values(2690,'總預算賬','3799_01',1,1,'','-1','','','',0,0,-1,-1,-1,'','','2016','371325001_01','371325001','4,2,2,2,2,2,2,2,2,2,2,2,2,2','',to_date('2015-09-24', 'dd-mm-yyyy hh24:mi:ss'),'');
"""
string=sub("([.\n]*values\()(.*)(\);)",r"\2",sql)
print(string)
上面的那個匹配我想要values后面括號的內容,所以我分了3個分組,第一個分組到values(,第二個分組是括號內的內容,第三個分組是);
但是運行結果卻是:
--acc_books
insert into acc_books(id,name,db_pref,flag,type,text1,text2,text3,text4,text5,flag1,flag2,flag3,flag4,flag5,remark,data_type,book_year,book_code,area_code,split_str,storage_location,date_stamp,set_year)
2690,'總預算賬','3799_01',1,1,'','-1','','','',0,0,-1,-1,-1,'','','2016','371325001_01','371325001','4,2,2,2,2,2,2,2,2,2,2,2,2,2','',to_date('2015-09-24', 'dd-mm-yyyy hh24:mi:ss'),''
uj5u.com熱心網友回復:
import reprint(re.search("([.\n]*values\()(.*)(\);)",sql).group(2))
uj5u.com熱心網友回復:
我寫的那個正則匹配沒問題啊,為什么我用第二組去替換整個字串結果不是第二組的內容呢
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/105014.html
上一篇:請教lambda在類引數中的使用
下一篇:求解Python題
