映画とネットのDIARY(tDiary版)

since 2004/07/15
ここは古い日記です。2013年11月からadiaryを使った新サイトに移行しました。
検索エンジンからのアクセスで、お探しのキーワードが見あたらない場合はNamazuで再検索してみてください。
映画の感想一覧 2004年7月以降 2005年  2006年  2007年  2008年  2009年

2009年02月14日 [Sat]

正規表現ではまる

ブログ(ココログ)のファイルをNamazu用に1記事1ファイルで保存するツールをなでしこで作っている。ほぼ完成したのだが、JavaScript部分を削除するところでつまずいた。正規表現で行末に;':{}のどれかがある行を削除しようとしたが、どうしても1行残るのだ。残ったのは

Facemark.Pallet.captionText = Facemark.is_mac ? 'alt(option)キー+クリックで連続入力'

という部分。英字で始まり、行末に'があるので、<以外から始まって'で終わる正規表現で大丈夫のはず。でも残る。秀丸上で

^[^<].*[';:{}]$

を検索してみると、確かに上の行にマッチする。でも、なでしこで正規表現置換すると、残る。なぜだろう。正規表現のDLLが違うためか。いろいろ試行錯誤して、これで半日つぶした。要するにアスキー文字列と日本語が混じっているいるからダメなのだった。ココログのファイルは文字コードがUTF-8、なでしこはSJISなので、アスキー文字列ならマッチしても日本語部分にはマッチするはずがない。というわけで、ファイルの文字コードを調べ、一度SJISに変換して保存する際に元の文字コードに戻す処理を付け加えた。やれやれ。

それにしてもブログの文字コードはどういうものが使われているのだろう。XHTMLを使うMovable Type系のブログならUTF-8が多いと思えるのだが、念のために作ったプログラムの対応調査と合わせて各ブログを調べてみた。以下の通り。

◆忍者ブログ ページ内リンク:相対パス 画像:絶対パス 表示OK JavaScriptOK トップページ保存OK(index.html) 文字コードUTF8
◆FC2ブログ ページ内リンク:絶対パス 画像:絶対パス 表示OK JavaScriptOK トップページ保存NG 文字コードEUC
◆Yahoo!ブログ ページ内リンク:相対パス 画像:絶対パス JavaScriptOK トップページ保存OK(index.html) 文字コードEUC
◆アメーバブログ ページ内リンク:相対パス 画像:絶対パス JavaScrip OK トップページ保存NG 文字コードUTF-8
◆gooブログ 保存:NG
◆Livedoorブログ ページ内リンク:絶対パス JavaScript OK 画像:絶対パス トップページ保存OK(index.html) 文字コードEUC
◆Blogger ページ内リンク:絶対パス 画像:絶対パス JavaScriptOK トップページ保存OK(index.html) 文字コードShift_JIS
◆ウェブリブログ ページ内リンク:絶対パス 画像:絶対パス トップページ保存OK(index.html) 文字コードShift_JIS
◆ココログ ページ内リンク:絶対パス 画像:絶対パス JavaScriptNG トップページ保存OK(index.html) 文字コードUTF-8
◆さくらのブログ ページ内リンク:絶対パス 画像:絶対パス JavaScriptOK トップページ保存OK(index.html) 文字コードShift_JIS

意外にEUCやSJISのファイルが多かった。作ったプログラムでファイルを保存できなかったのはgooブログだけ。ここはURLを見ても静的なHTMLファイルではないから仕方がない。変わっているのは忍者ブログで、記事ナンバーのフォルダの中にそれぞれindex.htmlが入っていた。ココログは保存したローカルのファイルを開くと、JavaScriptエラーが出る。ここはJavaScriptをカットして保存した方がいい。しかし、中にはレイアウトが崩れる場合があった。削除しきれなかったスクリプトの残骸が影響しているらしい。Firefoxではちゃんと表示されるのにね。なでしこはIEのブラウザエンジンを使っているからしょうがない。保存してJavaScriptエラーが出たのはココログだけだった。

これぐらいのブログで対応していれば、僕の拙いプログラムも少しは有用かもしれない。もっともブログの中には開いただけでJavaScriptエラーの嵐となって強制終了しなくてはいけないものもあった。元のページにJavaScriptエラーがあってはどうしようもない。自分でページを修正してもらわないと、対処できませんね。ブログパーツやデザインのテンプレートの中には作りの良くないものがあるのかもしれない。こういうのはあまり付けない方が無難。なでしこブラウザがブラウザのエンジンをIEからFirefoxに切り替えられれば便利なんですけどね。

もう少し調べてみて大きな不具合がなかったら、このプログラム、公開してみよう。と思ったが、不具合の質問が来るのは目に見えているのでやっぱりやめた方がいいか。


[管理人にメールする] [シネマ1987online]