更改以Varchar开头的括号中的字符串值

时间:2016-09-14 12:03:01

标签: python regex

我有一个python变量(类型unicode),它包含一个查询语句:

CREATE TABLE afg_temp (tadm1_code INTEGER NOT NULL, tadm1_name VARCHAR(10) NOT NULL, test VARCHAR(4));

我需要用254替换每个VARCHAR出现的所有值。 最初我认为使用replace()函数就足够了,但由于括号中的数字是随机的,所以这不会起作用。

有没有办法使用正则表达式?

2 个答案:

答案 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。