2016-04-03 6 views
0

さまざまなパターンのいずれかと一致する文字列をチェックしたいと思います。 elifでマッチした結果を保存することは可能ですか?elifの後に使用する変数にre.matchを保存します

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") 

またはこのようなようにそれがより明確に

+1

それを行うには良い方法:あなたはそうのような、それぞれの試合にfoobarを設定し、テストif foo/elif bar --->print(foo/bar.group(1))ができ – rock321987

答えて

0

作ることができます:説明するために 最初のテストが合格でない場合の第2テスト:

0

論理ステートメントとそれに対応する真理値を評価して、変数を割り当てるためのロジックではなく、分岐ロジックに割り当てます。 http://ideone.com/Jz1Y3v - :

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') 
関連する問題