• ベストアンサー

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

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

  • Perl
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
  • 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

  • 改行付きの文字列を正規表現で探知・削除したい

    下記の文字列を探知して、削除したいのですが、正規表現でやることはできますか? ----------------------------------- <script type="text/javascript"> <!-- test_function(); //--></script>

  • 2つのjavascript 統合

    javascript初心者です。お願いします。 DTD HTML 4.01 Transitionalで2つのjavascriptがあるので<HEAD>内に <script type="text/javascript"> <!-- ~~~~~ // --> </script> <script type="text/javascript"> <!-- ~~~~~ // --> </script> こんな場合に、真ん中の </script> <script type="text/javascript"> を削除して <script type="text/javascript"> <!-- ~~~~~ // --> <!-- ~~~~~ // --> </script> こんな風にしちゃっても大丈夫ですか? 動くけどやっぱダメですか? 削除して統合した方が良いですか?

  • HTMLのソースの取得・正規表現

    プログラム自体始めて間もない初心者です。 javascriptでHTMLのソースを取得して、正規表現でマッチしたURLを書き出したいと思います。 取得したソースから正規表現で抽出はできましたが、さらに手を加えると機能しませんでした。 下記test-1では「http://abc.com/」と表示されましたので思った通りに動きました。 しかし、test-2では「http」と表示されると思っていたところ、表示されませんでした。 この違いはなんでしょうか? //////////////////// test-1 <html> <head> <script type="text/javascript"> function test(){ aaa = document.getElementsByTagName("html")[0].innerHTML; bbb = aaa.match(/http:\/\/abc\.com\//); document.write(bbb); } </script> </head> <body> <input type="button" onclick="test()"> <a href="http://abc.com/"> </body> </html> //////////////////// test-2 function test(){ aaa = document.getElementsByTagName("html")[0].innerHTML; bbb = aaa.match(/http:\/\/abc\.com\//); ccc = bbb.match(/http/); document.write(ccc); }

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

    正規表現について教えてください。以下は左に配置したサムネイル(X01s、X01as、X01bs・・・)をクリックすると右にそのサムネイルの拡大画像(X01l、X01al、X01bl・・・)を表示するページです。 サムネイルのimgタグを▼以下のようにしたいと考えています。 ※makethumbnail.cgiはサムネイル作成CGI 現在:<img src="X01s.jpg"> 変更後:<img src="/makethumbnail?src=X01s.jpg&w=100&h=&type="> ▼以下はダメでした。正規表現に問題があるのでしょうか。 <img src="/makethumbnail.cgi?src=' + img + 's' + ext + '&w=100&h=&type=" class="thumbnail" onclick="changeImage(this)"> お知恵をお借りできれば幸いです。 <head> <script type="text/javascript"> location.search.match(/^\?img=([^&]+)(\.[^&\.]+)&num=(.+)$/); var img = RegExp.$1; var ext = RegExp.$2; var num = Number(RegExp.$3); function changeImage(img){ var imgsrc = img.src || img; imgsrc.match(/^(.*)s(\.[^\.]+)$/); document.main.src = RegExp.$1 + "l" + RegExp.$2; return false; } document.write = img && ext && num ? document.write : function(){}; </script> </head> <body> <table> <tr> <th> <script type="text/javascript"> /* サムネイル */ document.write('<a href="#"><img src="' + img + 's' + ext + '" class="thumbnail" onclick="changeImage(this)"></a><br /><br />'); for (var i = 1; i < num; i++) { document.write('<a href="#"><img src="' + img + String.fromCharCode(0x60 + i) + 's' + ext + '" class="thumbnail" onclick="changeImage(this)"></a><br><br>'); } </script> </td> <td> <script type="text/javascript"> /* 拡大 */ document.write('<img src="' + img + 'l' + ext + '" name="main" id="main_image" />'); </script> </td> </tr></table>

  • 正規表現について

    アメブロから独自ブログへ引越しを行うことになったのですが、 ペタしてね というリンク画像を毎ページに張り付けており、この画像リンクを一括で削除したいと思っています。 HTMLタグのパラメータが微妙にばらついており、正規表現の利用が必要かなと思っています。 専用のプラグインをインストールし、正規表現を利用して削除できることが分かったのですが、 正規表現の方法を数時間勉強してみましたが、結局どうすればいいのかわかりません・・・ 削除する画像リンクは以下のようなものです。 <a href="http://.........................."><img height="100" alt="ペタしてね" src="http://stat.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_18.gif" width="100" /></a> width や hight がページによって微妙に違うようです。 どちらさまか、上記のようなタグをマッチングさせる正規表現を教えていただけませんでしょうか。

    • ベストアンサー
    • PHP
  • javascriptの正規表現でhtmlからmetaタグを抽出してを削

    javascriptの正規表現でhtmlからmetaタグを抽出してを削除 javascriptの正規表現でhtmlからmetaタグを抽出してを削除したいと 考えておりますが、正規表現でmetaの取り出し方がわかりません。 どなたかご教授ください。 よろしくお願いいたします。

  • javascriptの正規表現で変数を扱う

    javascriptの正規表現で変数を扱う方法がわからずに困っております。 下記スクリプトの●●●部分に変数をいれるとしたら、 どうすれば良いでしょうか? どなたかご教授ください。 宜しくお願いいたします。 if(/(?:^|\s)●●●(?:$|\s)/.test(obj.className)){

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

    正規表現について教えてください。 JavaScriptでプログラミングを行っています。 その中で文字列に対しゼロサプレスを行いたいと思い 調べた結果、正規表現を使用する以下のコードで 実現可能なことが分かりました。 val.replace(/^0+([0-9]+.*)/, "$1") コードを記述し実行すると確かに可能なのですが 正規表現を調べてみても何故これでゼロサプレスが可能なのか よく理解できませんでした。 申し訳ありませんが初心者でも理解できるように説明して頂けないでしょうか。 宜しくお願いします。

  • 正規表現について

    php5を使って正規表現を勉強中です。 1度の正規表現で、拡張子を除いた ファイル名だけ抜き出すにはどうしたらよいでしょうか。 例えば、以下のような文字列から、…以降のファイル名を抜き出したいです。 /var/www/html/index.html  …indexを抜き出したい /var/www/html/login/login.php …loginを抜き出したい /var/www/html/js/script.js …scriptを抜き出したい

    • 締切済み
    • PHP
  • タグを正規表現で完全に削除

    こんばんわ~ときどきこちら様でお世話になってます タグ(Java ScriptやHTML中のCSS等きわめて複雑なものも含む)を完全に削除してウェブサイトの文字だけを抜き出したいんですけど自分にはハードルが高すぎたみたいです^^; http://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag いろいろ調べているうちにこちらのサイト様を発見し、 $none_tag =~ s/$tag_regex//; とやってみましたがなぜかタグが残ってしまいます。 とあるサイトの【文字】だけを抜き出せれば良いのでタイトルに正規表現と記載しましたがその他の方法でも構いませんのでよろしくお願いしますm(_ _)m

    • ベストアンサー
    • Perl