2017-01-01 3 views
0

for match in re.findallステートメントで既に追加されていないものすべてに影響を与える "catch all"ステートメントを使用することは可能ですか?"for 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

技術的には、 'http:// nonstandard.example.com/i/look_what_i_found_on_imgur.com'のようなURLを誤って分類するのを避けるために、' urllib'解析を使うべきですが、それは実際に質問される質問の範囲を超えています。 –

関連する問題