2017-01-19 2 views
0

私はUbuntuのコマンドラインでのpythonを使用していますし、これは私のコードです:関数でre.searchを使用するにはどうすればよいですか?

import re 
from sys import stdin 

def find(pat,text): 
    m= re.match(pat,text) 
    if m: 
     print m.groups() 
    else: 
     print m.groups() 

pat=stdin.readline() 
text=stdin.readline() 
answer= find(pat,text) 

thatsのすべて...私が取得エラーは次のとおりです。

AttributeError: 'NoneType' object has no attribute 'groups' 
+3

をあなたのエラーが表示されます「なし」? –

答えて

0

私はそれはあなたの他のbeacauseだと考えre.matchが失敗した場合、彼はあなたにNoneオブジェクトを与えます。

あなたが一致した場合にのみ

m.groups() 

を使用することができます例えば

str1 = "toto is happy" 
print re.match("toto",str1).group() 

意志出力

'TOTO'

しかし

str1 = "toto is happy" 
print re.match("test",str1).group() 

は失敗し、あなたはすでにm` `の値があることを知っているとき`)(あなたは `m.groupsをやっている理由else`ブロック、`で

+0

はい、私はコマンドラインを使用している場合、senarioは失敗しません..それは一致する必要があります。私の入力はfind(a、abc)ですので一致するはずです – newB

関連する問題