• ベストアンサー

特定文字列で囲まれた範囲を抜き書きするためには?

特定の文字列で開始され、特定の文字列で終了するテキストの一部を抜き出すためには、コマンドラインからは perl -ne 'print if /開始文字列/ .. /終了文字列/' file.txt でできると思うのですが、これがたとえば $page 変数に入ったテキストで同様の処理を Perl 内部のスクリプトで行う時にはどうすればいいのでしょうか? while(<$page>){ ... } とかやって1行1行処理してみようと思ったのだけど、できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • 2NN
  • ベストアンサー率40% (143/353)
回答No.2

#1の補足です。 変数に入れる場合は、 my ($str) = $page =~ /(開始文字列.+終了文字列)/s; とします。 複数取り出す場合は、 my @array = $page =~ /(開始文字列.+終了文字列)/gs; で配列として取り出すことができます。

chitosefu
質問者

お礼

完璧です。 大変助かりました。ありがとうございます。

その他の回答 (1)

  • 2NN
  • ベストアンサー率40% (143/353)
回答No.1

print $page =~ /(開始文字列.+終了文字列)/s; これでどうでしょうか。