2016-07-27 3 views
0

Как получить содержимое между строками &quot и autoRefresh, которое будет /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

Вы прошел список, когда она должна быть каждой строкой в ​​цикле или использовании '«».join (big_list)' ' –

+0

сделать для эля в big_list : 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

Что это значит? Не понял. –