我正在尝试使用正则表达式替换列表中的可变长度项目。例如,此项“HD479659”应替换为“HD0000000479659”。我只需要在两者之间插入 7 个 0。我制作了以下程序,但每次运行它时都会出现以下错误:“TypeError:'_sre.SRE_Pattern' 类型的对象没有 len()”。你能帮我解决这个错误吗?
非常感谢你
这是程序
import xlrd
import re
import string
wb = xlrd.open_workbook("3_1.xls")
sh = wb.sheet_by_index(0)
outfile=open('out.txt','w')
s_pat=r"HD[1-9]{1}[0-9]{5}"
s_pat1=r"HD[0]{7}[0-9]{6}"
pat = re.compile(s_pat)
pat1 = re.compile(s_pat1)
for rownum1 in range(sh.nrows):
str1= str(sh.row_values(rownum1))
m1=[]
m1 = pat.findall(str1)
m1=list(set(m1))
for a in m1:
a=re.sub(pat,pat1,a)
print >> outfile, m1