我有一个python变量(类型unicode),它包含一个查询语句:
CREATE TABLE afg_temp (tadm1_code INTEGER NOT NULL, tadm1_name VARCHAR(10) NOT NULL, test VARCHAR(4));
我需要用254替换每个VARCHAR出现的所有值。 最初我认为使用replace()函数就足够了,但由于括号中的数字是随机的,所以这不会起作用。
有没有办法使用正则表达式?
答案 0 :(得分:4)
使用regexp:
{{1}}
答案 1 :(得分:1)
import re
s='''CREATE TABLE afg_temp (tadm1_code INTEGER NOT NULL, tadm1_name VARCHAR(10) NOT NULL, test VARCHAR(4));'''
re.sub('VARCHAR\([0-9]{1,3}\)','VARCHAR(254)',s)
还有很多其他解决方案,你甚至不需要python。最简单的方法是使用sed。