如果存在单词,则将正则表达式修改为不匹配

2024-10-01 13:37:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

但是,如果上面的语句在ADD之后有CONSTRAINT这个词,我不想更改,即

ALTER TABLE post_tran ADD CONSTRAINT ext_acq_ref_num VARCHAR (12) NULL

我尝试使用lookahead操作符,但我很困惑,因为在这种情况下,group captures返回空

请帮帮我


Tags: refaddtablenewline语句postnullnum