我得到了一个数据库,其中一张表中的记录字段包含以字符串形式表示的价格。 字符串本身并不是什么大问题,但价格完全没有格式:
$12,000.50
$3.50
From $3.50 to $12,000.50
what I trying to get is:
12000.50
3.50
3.50
去掉所有"$"和",",只留下前两位数字。
我写了这段代码,对前两个例子有效,但最后一个失败了(sqlite语法错误 - 显然它给了我两个数字)。
以下是代码:
for every_line:
found=re.findall(r"\d.\.?",every_line[9])
db_cursor.execute("UPDATE MAINTABLE SET Price="+"".join(found)+" WHERE Id="+str(every_line[0]))
db_connection.commit()
在这里,每个"every_line[0]"代表索引字段,而"[9]"则代表价格字段。
我该如何使其更加高效(使用或不使用正则表达式),更加简单和通用?
非常感谢您的帮助。
re.compile()
函数非常适合展示正则表达式中的不变性。 - Ignacio Vazquez-Abrams