2012-11-14 146 views
0

我試圖從流媒體API中插入字典中的某些值。其中之一是使用track = keyword的過濾器方法中使用的術語的值。我寫了一些代碼,但在打印語句中,我收到了「遇到的異常:'術語'」錯誤。這是我的部分代碼:模式匹配Twitter流媒體API

for term in setTerms: 
    a = re.compile(term, re.IGNORECASE) 
    if re.search(a, status.text): 
     message['term'] = term 
    else: 
     pass 

     print message['text'], message['term'] 

這是在濾波代碼:

setTerms = ['BBC','XFactor','Obama'] 
streamer.filter(track = setTerms) 

它匹配字符串,但我也需要能夠匹配所有實例如。英國廣播公司也應該與#BBC,@BBC或BBC1等

所以我的問題我將如何得到setTerms,如英國廣播公司匹配所有這些實例如果re.search(term,status.text)的術語?

謝謝

+0

所以把它簡單,你只是想匹配包含你的'setTerm'列表的子字符串的實例嗎?也許簡單地使用'in'運算符http://stackoverflow.com/questions/3437059/does-python-have-a-string-contains-method?或者我想念什麼? – 2012-11-15 07:11:06

回答

0

您是否試過將所有搜索條件放入單個表達式中?

即setTerms =「(BBC)|(XFactor)|(奧巴馬)」?,然後看它是否整片的字符串匹配(而不只是個別字