• ベストアンサー

この正規表現について教えてください。

<script type="text/javascript"> ....................... ....................... ....................... </script> のようなHTML文書内のスクリプトを削除して <script type="text/javascript"> </script> のようにしたいのですが、どのような正規表現に なりますでしょうか。お願いします。

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

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

open(IN, "< input.htm"); #元ファイル open(OUT, "> output.htm"); #処理後ファイル $flag = 0; while(<IN>){ if($flag){ if(/<\/script>/i){ s|.*</script>(.*)|</script>$1|i; $flag = 0; }else{ next; } }else{ if(/<script type="text\/javascript">/i){ s|(.*)<script type="text/javascript">.*|$1<script type="text/javascript">|i; $flag = 1; } } print OUT; } close(OUT); close(IN);

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

HTMLファイルの内容を1つの文字列に押し込め、s オプション付きで置換すると簡単かも。 open FH, "hoge.html" or die $!; # ファイルから一括入力するための設定 local $/; my $html = <FH>; close FH; $html =~ s|(<script type="text/javascript">).*?(</script>)|$1\n$2|gis; open FH, "> hoge.out.html" or die $!; print FH $html; close FH;

すると、全ての回答が全文表示されます。

関連するQ&A