def get_project_name(project_string):
GG = '%.2f' % (float(re.findall(r"\d+\.?\d*", str(project_string))[0]))
print (GG)
return GG
有时,此函数获取的条目为空,这会导致“索引超出范围错误”。
如何修复它以忽略空白的条目然后继续?谢谢。
答案 0 :(得分:2)
您可以使用try
和except
。
def get_project_name(project_string):
try:
GG = '%.2f' % (float(re.findall(r"\d+\.?\d*", str(project_string))[0]))
print GG
return GG
except Exception:
print "Some error message"
答案 1 :(得分:0)
如果要对“找到”和“未找到”情况应用相同的逻辑,您还可以使用next
和默认值(分开一点以使其更清晰):
p = r"\d+\.?\d*"
text = str(project_string)
GG = '%.2f' % (float(next(re.findall(p, text), 0.0)))
但是如果你只需要第一场比赛,那么使用re.finditer
或re.search
实际上会更好,但那些会返回Match
个对象,而不是直接匹配的字符串。
m = re.search(p, text)
GG = '%.2f' % (float(m.group()) if m else 0.0)