2016-07-27 65 views
0

如何获取字符串&quotautoRefresh之间的内容,其中/commander/link/jobDetails/jobs/a2537f238-8622-11ee-a1a0-f0921c14c828?将从下面的列表中获得,我只需要第一个匹配项(可能有多个匹配项)。获取python列表中的字符串之间的子串

['something', 'something', ' something top.window.location.href = "/commander/link/jobDetails/jobs/a2537f238-8622-11ee-a1a0-f0921c14c828?autoRefresh=0&s=Jobs";">','something'] 

试图

link = re.search('"(.*?)autoRefresh', big_list) 
print link.group(1) 

,并得到TypeError: expected string or buffer

+0

您通过列表时,它应该是在一个循环或使用'“”。加入(big_list)每个字符串' –

+0

在big_list ELEM做' :print re.search(...)。group(1)' – inspectorG4dget

回答

0

您需要遍历列表,检查每个字符串:

big_list = ['something', 'something', ' something top.window.location.href = "/commander/link/jobDetails/jobs/a2537f238-8622-11ee-a1a0-f0921c14c828?autoRefresh=0&s=Jobs";">','something'] 

def get_all_subs(lst, pat, grp=0): 
    patt = re.compile(pat) 
    for s in lst: 
     m = patt.search(s, grp) 
     if m: 
      yield m.group(grp) 

print(list(get_all_subs(big_list, '"(.*?)autoRefresh', 1))) 

或致电str.join名单上,并使用findall

print(re.findall('"(.*?)autoRefresh', "".join(big_list))) 
0

您可以使用以下方法:

re.search(r'(?<=&quot).*?(?=autoRefresh)', ''.join(YourList)) 
+0

它是一个非常大的列表,所以让我在比赛结束后迭代并跳出循环。谢谢。 – rodee

+0

你是什么意思?没有得到它。 –

相关问题