我想检查一个匹配各种模式之一的字符串。在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可以使其更清晰
答案 0 :(得分:0)
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")
答案 1 :(得分:0)
如果条件用于评估逻辑语句及其对应的真值,则分支逻辑不用于分配变量。您可以将foo
和bar
设置为相应的匹配项,然后测试if foo
/ elif bar
---> print(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')