Python 在变量中保存re.match以在elif之后使用

Python 在变量中保存re.match以在elif之后使用,python,regex,python-3.x,Python,Regex,Python 3.x,我想检查与各种模式之一匹配的字符串。在elif中是否可以保存匹配结果? 举例说明: if foo = re.match(r'add (.+)', message): print(foo.group(1)) elif foo = re.match(r'del (.+)', message): print(foo.group(1)) else: print("bar") 真正的用例稍微复杂一些,使用elif可以使它更清楚地像这样 add_check = re.match(r

我想检查与各种模式之一匹配的字符串。在elif中是否可以保存匹配结果? 举例说明:

if foo = re.match(r'add (.+)', message):
    print(foo.group(1))
elif foo = re.match(r'del (.+)', message):
    print(foo.group(1))
else:
    print("bar")
真正的用例稍微复杂一些,使用elif可以使它更清楚地像这样

add_check = re.match(r'add (.+)', message)
del_check = re.match(r'del (.+)', message)

if add_check:
    print(add_check.group(1))
elif del_check = :
    print(del_check.group(1))
else:
    print("bar")
或者像这样,当第一个测试不通过时,只进行第二个测试:

add_check = re.match(r'add (.+)', message)    
if add_check:
    print(add_check.group(1))
else:
    del_check = re.match(r'del (.+)', message)
    if del_check:
        print(del_check.group(1))
    else:
        print("bar")

如果条件用于将逻辑语句及其对应的真值求值到分支逻辑,则不用于分配变量。您可以将
foo
bar
设置为相应的匹配项,然后测试
如果foo
/
elif bar
-->
打印(foo/bar.group(1))
如下:

foo = re.match(r'add (.+)', message)
bar = re.match(r'del (.+)', message)
if foo:
   print(foo.group(1))
elif bar:
   print(bar.group(1))
else:
   print('fubar')
更好的方法是:-