2012-01-12 7 views
0

私は何とかこの質問に対する答えが明白であることを知っていますが、なぜ私がregを見つけることができないのかを見つけるために数日間過ごしました。 exp。 machオブジェクトを以下のスクリプトに追加します。Python正規表現の検索matchobjがエラーを引き起こします

import sys 
import re, pdb 
#pdb.set_trace() 

def fn_get_srctxt_hg_datestring_rawdata_from_clipbd(): 
    this_scriptz_FULLName = sys.argv[0] 
    try: 
     date_string_raw = sys.argv[1] 
     return returnval  
    except: 
     date_string_raw = '' 

     import win32clipboard 

     win32clipboard.OpenClipboard() 
     clip_text = win32clipboard.GetClipboardData() 
     win32clipboard.CloseClipboard()  

     date_string_raw = clip_text 
     returnval = clip_text 
     return returnval  




def fn_cull_sender_info(date_string_raw): # 
    # Do re replacements 
    import re 
    sender_info = 'Line 29 empty' 
    print '\n\nLine 30: date_string_raw = [starts on next line...]\n' + str(date_string_raw) + '\n' + 'x'*80 + '\n' 
    srchpatrn = r"(from:\t)(([A-Za-z\. ]+?)(?:))?([A-Za-z.\-_0-9][email protected][A-Za-z.\-_0-9].+?\.(?:com|org|net))"   

    matchObj = re.search(srchpatrn, date_string_raw) 
    if matchObj: 
     print 'Line 35: matchObj found\n str(match_obj.group(0)) = ' + str(match_obj.group(0)) 
     sender_info = str(match_obj.group(0)) 
    return sender_info 


if __name__ == '__main__': 
    harvey = fn_get_srctxt_hg_datestring_rawdata_from_clipbd() 
    print harvey 
    date_string_raw = harvey 
    print '*****'*50 
    print '\n\n' 
    print fn_cull_sender_info(date_string_raw) 

そして、次の(別の関数[ここには示されていない]によって生成テキストである)私のテキストで次のコードがある

subject:  Re: Why DOJ BMFEA Baton Rouge rejected Gonzalaz Pen Code 99999 death case 


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 

Traceback (most recent call last): 
    File "C:\Apps\UtilitiesByMarc\test_search4Sender_aaB.py", line 46, in <module> 
    print fn_cull_sender_info(date_string_raw) 
    File "C:\Apps\UtilitiesByMarc\test_search4Sender_aaB.py", line 35, in fn_cull_sender_info 
    print 'Line 35: matchObj found\n str(match_obj.group(0)) = ' + str(match_obj.group(0)) 
NameError: global name 'match_obj' is not defined 

: は、ここで私は取得エラーmesssageです私は上記のPythonコードを実行するとWindowsのクリップボードを持っている:

sender_display_name = matchObj.search(date_string_raw).group(2)#.strip() 
sender_eml =  matchObj.search(date_string_raw).group(4) 

私は私が間違ってやっているものを見つけるためにしようと日々を過ごしてきました。 正規表現グループ3と4を文字列変数に取り込みたいとします。

しかし、私はmatchObjをTrueとして返すことができないので、そこには到達できません。

答えて

4

matchObjは、match_objではありません。

+0

この種の問題は[pyflakes](http://pypi.python.org/pypi/pyflakes)のような構文チェックツールで簡単に検出できます。 – jcollado

+0

私は非常に簡単な、パイリンチンを使用しています。 – NuclearPeon