みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

<script type="text/javascript">
.......................
.......................
.......................
</script>

のようなHTML文書内のスクリプトを削除して

<script type="text/javascript">
</script>

のようにしたいのですが、どのような正規表現に
なりますでしょうか。お願いします。

投稿日時 - 2004-06-27 18:54:02

QNo.906988

暇なときに回答ください

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

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);

投稿日時 - 2004-06-28 05:17:04

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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;

投稿日時 - 2004-06-28 15:14:50

あなたにオススメの質問