2017-01-01 61 views
0

是否可能有一個「catch all」語句影響所有尚未被for match in re.findall語句添加的語句。抓住所有在「for」的末尾

for submission in submissions: 
    print (submission.url) 
    for match in re.findall(".+imgur\.com+",submission.url): 
     NonFilteredImgurImageList.append(submission.url) 
    for match in re.findall("gfycat\.com",submission.url): 
     GfycatUrlList.append(submission.url) 
    else: 
     NonStandardUrlList.append(submission.url) 

我試過以上,但沒有奏效。

有沒有辦法讓它工作或更好的方式來設置它(我打算隨着時間的推移添加更多的正則表達式搜索)。

+0

究竟是「捕獲所有」?你的問題不清楚。 – Maroun

+0

還要注意''。+ imgur \ .com +「'不是你想要的,它匹配''http://imgur.commmmmmmmm''這樣的字符串。 –

+0

一個'submission.url'可以包含多個url嗎?如果是這樣,你想單獨添加每一個還是僅僅提交提交(如同你有的,在多個url的情況下有效地複製)。 – kabanus

回答

0

它看起來不像你需要一個正則表達式。實際上,如果那些re.findall調用實際上包含多個結果,則它會附加相應的submission.url字符串的副本。只需使用in

for submission in submissions: 
    print(submission.url) 
    if 'imgur.com' in submission.url: 
     NonFilteredImgurImageList.append(submission.url) 
    elif 'gifycat.com' in submission.url: 
     GfycatUrlList.append(submission.url) 
    else: 
     NonStandardUrlList.append(submission.url) 

如果正則表達式匹配實際上這裏需要的話,你會使用類似以下內容:

for submission in submissions: 
    i = re.findall(expression1, submissions.url) 
    g = re.findall(expression2, submissions.url) 
    if i: 
     results['imgur'] += i 
    elif g: 
     results['gfycat'] += g 
    else: 
     results['failures'].append(submissions.url) 
+0

我想在技術上應該使用'urllib'解析來避免錯誤分類像'http:// nonstandard.example.com/i/look_what_i_found_on_imgur.com'這樣的URL,但這實際上超出了被問的範圍。 –