プロが教えるわが家の防犯対策術!

以下のようなHTMLから、

<tr><td>AAA<td>BBB<td>CCC<td>DDD<td>EEE<td></tr>

CCC という文字列だけを取り出したいとき、Perl、または
正規表現ではどのように記述したらよいのでしょうか??
Index関数を使ってみたのですが、うまくいきませんでした。

アドバイスをよろしくお願いします。

A 回答 (2件)

文字列が $line に入っているものとして、



$line =~ /(<td>).+?\1.+?\1(.+?)\1/;
print "$2\n";

これで、CCC が表示されるものと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
+?\1 を増やす事で範囲をずらす事もできました。

お礼日時:2007/02/14 16:23

できればもうちょっと「やりたいこと」を正確に書いてほしいなぁと思いつつ,


/^(?:.*?<td>){3}(.*?)<td>/
でもいいかも.
時間かかっていいなら split 使ってもいいし.
    • good
    • 0
この回答へのお礼

すみません、この問題以外の部分は出来上がっていたので、
ポイントを絞った質問とさせて頂きました。

ご回答ありがとうございます。

お礼日時:2007/02/14 16:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!