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

それがループまたは使用中の各文字列でなければならないときは、「」 '.join(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

どういう意味ですか?それを得ていない。 –

関連する問題