カテゴリー「コンピューター一般」の記事

2010年10月 8日 (金)

正規表現でHTMLタグをマッチさせる

Perl スクリプトで HTML ファイルからとある Javascript 部分を除去しようと思い、<script></script> の間に hogehoge という文字列が含まれていることに着目して

/<script [¥w¥W]+?hogehoge[¥w¥W]+?<¥/script>/

というような正規表現を記述して実行してみたところ、見事に失敗した。

原因は、hogehoge を含む<script>タグの前に、hogehogeを含まない<script>タグがあったことである。具体的に言うと

<html>
<head>
   <script>※1
   nanigashi
   </script>
</head>
<body>
iroiro
   <script>※2
   hogehoge
   </script>※3
</body>
</html>

という HTML に上記の正規表現を適用したのだが、※2から※3をマッチさせるつもりが、※1から※3までマッチしてしまったのである。

そこで、ウェブ上の情報を頼りに試行錯誤してみたところ、

/<script ((?!<script)[¥w¥W])+?hogehoge[¥w¥W]+?<¥/script>/

のように書けばよいことがわかった。((?!<script)[¥w¥W])の部分が「<scriptという文字列を含まない任意の1文字(改行を含む)」を表す。こうすれば、確実に「あるタグではさんだ部分だけ」をマッチさせることができる。

なお、改行を含まない場合は ((?!<script).) となる。

2003年12月 7日 (日)

昨日、うちの近所

昨日、うちの近所で電線工事をした業者がうちの電話線を斬ってしまうというアクシデントに見舞われ、20時間もの間、電話とインターネットが出来ない状態が続きました。災難でした(泣)。

2003年9月30日 (火)

去年の春に Windo

去年の春に Windows マシンの CRT ディスプレイが壊れたとき、近所の祖母宅(祖母は二年前亡くなったため無人)に一時保管したうえで母に大型ゴミの日に出すよう頼んでおいたのに、つい最近になって母がいまだにゴミ回収を市に依頼していないことが判明、10月1日から廃棄パソコンの回収をメーカーに依頼しなければならないという法律が施行されるため、昨日、慌てて市のゴミ担当窓口に電話をかけました。大型ゴミなら900円ですむところを、メーカー回収なら4000円も取られます。回収日は電話で申し込んだ日の数日後になることがわかっていたので、もしかしたら市は回収してくれないのではないかと心配したのですが、回収日が10月3日になるにもかかわらず、大型ゴミとして回収してくれるとのこと。助かりました。

2001年5月 8日 (火)

最近、CGを描い

最近、CGを描いていない。
いや、グラフィックツールすらあまりいじることがなかった。

ところが数日前から、何となくGIMPなど触り始め、さあ、いよいよCG製作再開か、というところまでこぎ着けた。

なのに・・・

今日知り合いにいわれた一言で、すっかりやる気がなくなった。知り合いにしてみれば他愛もない一言だったのだろう。吾輩としても、別の状況下でい言われていたら軽く聞き流せたかも知れない。

しかし・・・なのだ。

残念だが、もうしばらくCG製作は再開できそうにない。