あっという間の十年ブログ【Ruby篇】

"詮ずるところ#{プログラミング}は、ただ年月長く倦まずおこたらずして、はげみつとむるぞ肝要にて、学びやうは、いかやうにてもよかるべく、さのみかかはるまじきことなり。いかほど学びかたよくても、おこたりてつとめざれば、功はなし。また、人々の才と不才とによりて、その功いたく異なれども、才不才は、生まれつきたることなれば、力に及びがたし。されど、大抵は、不才なる人といへども、おこたらずつとめだにすれば、それだけの功は有る物なり。" - 本居宣長

jpg画像リンク取得正規表現

画像収集プログラムを見様見真似で書いたのだけどjpg画像のリンクを取得する正規表現のところが難しくてよくわからなかった。よくわからないままにしておくのは気持ち悪いから調べたので、自分用に解説を書いておく。

m{<a.*?href="(http://[^"]+\.jpg)"}gi;

m
スラッシュ以外の記号でパターンマッチを記述できる (ここでは{})

g
一致するすべての文字を検索 (指定なしの場合は最初の1つだけ検索)

i
アルファベット大文字小文字の区別をしない

[^"]
" 以外の1文字にマッチする (" は文字列の終わりと解釈されてしまうため否定している)

\ (またはバックスラッシュ)
特殊文字に特殊な意味を持たせない

+
直前の表現が1個以上あることを示す

()
マッチした文字列を取得

.*?
スペースと思われる (推測)


参考になったwebサイト
http://d.hatena.ne.jp/perlcodesample/20100827/1278596435
http://d.hatena.ne.jp/k2830122/20070727
http://hodade.adam.ne.jp/seiki/page.php?checker