Python 在变量中保存re.match以在elif之后使用
我想检查与各种模式之一匹配的字符串。在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
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')
更好的方法是:-