2012-11-14 77 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)|(奥巴马)”?,然后看它是否整片的字符串匹配(而不只是个别字