myRe = re.compile(r"(ALTER TABLE\s*\n*\t*)(.*)(\s*\n*\t*ADD\s*\n*\t*)([a-zA-Z0-9_]*)(\s+\n*?\t*?)(.*)")
newline = myRe.sub(r"EXEC osp_norm_ext_col_add '\4','\2','\6'", newline)
我设计了上面的正则表达式来改变语句,如:
ALTER TABLE post_tran ADD ext_acq_ref_num VARCHAR (12) NULL
但是,如果CONSTRAINT
后面有ADD
一词,我不想更改上述声明,即
ALTER TABLE post_tran ADD CONSTRAINT ext_acq_ref_num VARCHAR (12) NULL
我尝试使用前瞻操作员,但我很困惑,因为在这种情况下,组捕获返回为空。
请帮忙!