冗余If Statement和Regex

app*_*ver 1 python regex if-statement

以下代码显然是多余的,但根据我的经验,我经常使用这种模式.有没有更好的方法在python中执行此操作?

if re.search("at (\d{1,2}):\d{2}", p):
    a=re.search("at (\d{1,2}):\d{2}",p).group(1)
Run Code Online (Sandbox Code Playgroud)

ars*_*jii 6

是的,这是多余的; 你应该将结果search()赋给变量而不是调用它两次:

m = re.search("at (\d{1,2}):\d{2}", p)

if m:
    a = m.group(1)
Run Code Online (Sandbox Code Playgroud)

或者可能

a = m.group(1) if m else some_default_value
Run Code Online (Sandbox Code Playgroud)

此外,如果您要经常使用此模式,请考虑使用re.compile()预编译正则表达式.