

現在はてなブックマークのRSSからサムネイルのurlを正規表現を用いて取得しようとしています。

[code]

    <!DOCTYPE html>
    <head>
     <meta charset="utf-8">
    </head>
    
    <body>
    <div class = "message"></div>
      <script src="http://d3js.org/d3.v3.js" charset="utf-8"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
      <script src="https://www.google.com/jsapi"></script>
    
     <script>
     var imagelist = [];
     google.load("feeds","1");
     function initialize(){
       var feed =new google.feeds.Feed("http://feeds.feedburner.com/hatena/b/hotentry");
    
       feed.setNumEntries(-1);
       feed.load(function(result){
        if(!result.error){
         for(var i=0;i < result.feed.entries.length;i++){
          var entry = result.feed.entries[i];
          var first_image = entry.content.match( /(http:){1}[\S_-]+\.(?:jpg|gif|png)/);
          first_image[0] = first_image[0].replace(/(\.[^.]+$)/ , "_l$1");
          imagelist.push(first_image);
         console.log(imagelist)
         }
        }
       });
      }
         google.setOnLoadCallback(initialize);
         console.log(imagelist[0])
     </script>
    </body>
    </html>
[/code]

上記が作成しているソースなのですが、このプログラムを実行しコンソールを見てみると

[code]

    0: Array[2]
    0: "https://cdn-ak.b.st-hatena.com/entryimage/273819903-1450199417_l.jpg"
    1: "http:"
    index: 350
    input: "<blockquote title="著名ゲーム開発者の小島氏がコナミ退社　新会社設立か　　：日本経済新聞"><cite><img src="https://cdn-ak.favicon.st-hatena.com/?url=http%3A%2F%2Fwww.nikkei.com%2F" alt=""> <a href="http://www.nikkei.com/article/DGXLZO95184030W5A211C1TI5000/">著名ゲーム開発者の小島氏がコナミ退社　新会社設立か　　：日本経済新聞</a></cite><p><a href="http://www.nikkei.com/article/DGXLZO95184030W5A211C1TI5000/"><img src="https://cdn-ak.b.st-hatena.com/entryimage/273819903-1450199417.jpg" alt="著名ゲーム開発者の小島氏がコナミ退社　新会社設立か　　：日本経済新聞" title="著名ゲーム開発者の小島氏がコナミ退社　新会社設立か　　：日本経済新聞"></a></p><p>ゲームソフト「メタルギア」シリーズで知られる著名ゲームクリエーターの小島秀夫氏が、15日付でコナミデジタルエンタテインメントを退社した。新会社を設立してゲーム制作を続け、ソニー・コンピュータエンタテインメント（ＳＣＥ）のゲーム機「プレイステーション（ＰＳ）」向けなどで販売するとみられる。 　コナミ時代の部下と新会社を設立する。代表作「メタルギア」シリーズの版…</p><p><a href="http://b.hatena.ne.jp/entry/http://www.nikkei.com/article/DGXLZO95184030W5A211C1TI5000/"><img src="http://b.hatena.ne.jp/entry/image/http://www.nikkei.com/article/DGXLZO95184030W5A211C1TI5000/" alt="はてなブックマーク - 著名ゲーム開発者の小島氏がコナミ退社　新会社設立か　　：日本経済新聞" title="はてなブックマーク - 著名ゲーム開発者の小島氏がコナミ退社　新会社設立か　　：日本経済新聞" border="0" style="border:none"></a> <a href="http://b.hatena.ne.jp/append?http://www.nikkei.com/article/DGXLZO95184030W5A211C1TI5000/"><img src="http://b.hatena.ne.jp/images/append.gif" border="0" alt="はてなブックマークに追加" title="はてなブックマークに追加"></a></p></blockquote><img src="http://feeds.feedburner.com/~r/hatena/b/hotentry/~4/y3bfYN4dQBo" height="1" width="1" alt="">"
    
[/code]

といった風に必要なurlである

[code]

    0: "https://cdn-ak.b.st-hatena.com/entryimage/273819903-1450199417_l.jpg"
    
[/code]

の他に不必要な

[code]

    1: "http:"
    
[/code]

まで取得してしまいます。  
こちらを除くには正規表現の部分をどのように書き換えば0:のurlのみを取得することができるのでしょうか？  
お力添え宜しくお願い致します。


CC BY-SA 4.0
2015-12-16T05:46:01.550
20053
2019-02-19T01:56:19.437
2019-02-19T01:56:19.437
19769
13172
question
javascript html 正規表現 d3.js
サムネイルurl取得の正規表現について


`entry.content.match(/(http:){1}[\S_-]+\.(?:jpg|gif|png)/)` を
`entry.content.match(/(?:http:){1}[\S_-]+\.(?:jpg|gif|png)/)` に変更すれば
first_image[1] は消えます。正規表現界隈の用語で、前者の `()` をキャプチャ括弧、後者の `(?:)`
を非キャプチャ括弧などと呼びます。拡張子部分で既に非キャプチャ括弧が使われていますね。

が、とくに気にしないで `first_image[0]` だけ参照しても良いのでは。


CC BY-SA 3.0
2015-12-16T09:10:12.970
20063
2015-12-16T09:10:12.970
3475
20053
answer