お仕事: 2012年8月アーカイブ

Perl v5.8.5 の正規表現なんじゃけど、例えば、

<div class="hoge1">
<div class="hoge2">
ほげほげ
</div>
<div class="hoge3"></div>
</div>わたしは恥知らずな夜のホームラン王よ!<div class="date">[ 8/6 12:48 ]</div>

みたいなテキスト(HTML ソース)があったとして、

/\/div>(.*?)<div class=\"date\">\[(.*?)\]/gs

みたいなマッチング条件だと、

$1に

<div class="hoge3"></div>
</div>わたしは恥知らずな夜のホームラン王よ!

がセットされてしまう。最短マッチの(.*?)っていう条件にしてるのに、最長マッチしたものがセットされているってわけだ。

で、

/.+\/div>(.*?)<div class=\"date\">\[(.*?)\]/gs

みたいに、頭に .+ という「任意の数文字」という条件を足すと、ちゃんと

わたしは恥知らずな夜のホームラン王よ!

だけを取ってくる。

何、これ?

正規表現の神よ、なんで .+ を付けるだけで結果が変わってくるのん?.*?って最短マッチしてるんだから、その前に任意の文字があろうがなかろうが関係ないやん。
なんでぇ?教えてぇ?

このアーカイブについて

このページには、2012年8月以降に書かれたブログ記事のうちお仕事カテゴリに属しているものが含まれています。

前のアーカイブはお仕事: 2012年5月です。

次のアーカイブはお仕事: 2012年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら