これがどのように起こっているのかわかりませんが、一致を行った後、私の perl 正規表現の一致が次の一致に更新されないようです。$& 変数と $1 変数を一致ごとに更新する代わりに、最初の変数でスタックします。
私はどこでも見てきましたが、これは非常にイライラすることがわかりました。
以下のデバッガーからの出力を参照してください。ご覧のとおり、最初の一致は意味がありますが、2 番目の一致は意味がありません。
ありがとう
DB<79> $riz =~ m{url=(.*?)Support};
DB<80> p$&;
url="http://www.svartapelsin.se" draggingName="Bunny Camp Support
DB<81> $riz =~ m{href=(.*artist?)};
DB<82> p $&;
url="http://www.svartapelsin.se" draggingName="Bunny Camp Support
DB<83>
更新: これは、「アーティスト」というテキストが文字列内にあることを示す別のサンプルですが、まだ見つかりません。$riz の値は巨大な HTML コードなので、投稿するのは大変です。
DB<103> $riz =~ m{url=(.*?)Support};
DB<104> p $&;
url="http://www.svartapelsin.se" draggingName="Bunny Camp Support
DB<105> $riz =~ m{artist};
DB<106> p $&;
url="http://www.svartapelsin.se" draggingName="Bunny Camp Support
DB<107> p string.index($riz,"artist");
string105
DB<108>
私の $riz は、このリンクのすべての HTML です http://itunes.apple.com/us/app/id385972277
ユーザーエージェントを利用する場合 iTunes/10.2 (Macintosh; U; PPC Mac OS X 10.2)
同じ $riz を使用した別の例を次に示します。
DB<128> $riz =~ m/.*/;
DB<129> p $&;
url="http://www.svartapelsin.se" draggingName="Bunny Camp Support
DB<130>
...
DB<136> p substr $riz,0,20;
<?xml version="1.0"
DB<137>
つまり、これはばかげているだけではありませんか?$riz no の値を出力するだけでよいのでしょうか? ご覧のとおり、表示されているものとは異なります。また、どのように m/.*/ が有効な正規表現ではないのでしょうか?