以下代码显然是多余的,但根据我的经验,我经常使用这种模式。在python中有更好的方法吗?
if re.search("at (\d{1,2}):\d{2}", p):
a=re.search("at (\d{1,2}):\d{2}",p).group(1)
答案 0 :(得分:6)
是的,这是多余的;您应该将search()
的结果分配给变量,而不是将其调用两次:
m = re.search("at (\d{1,2}):\d{2}", p)
if m:
a = m.group(1)
或者
a = m.group(1) if m else some_default_value
此外,如果您要经常使用此模式,请考虑使用re.compile()
预编译正则表达式。
答案 1 :(得分:1)
保存第一个搜索并检查其布尔含义:
res = re.search (...)
if res:
a = res.group (1)