2016-07-27 73 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

你是什麼意思?沒有得到它。 –

相關問題