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

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

2007年05月15日 [Tue]

Replaceの正規表現

backup_mixiでダウンロードしたmixiのファイルをNamazuで検索する場合、IEからだと、他のドライブにジャンプすることはできないので、直接mixiへジャンプするようにnamazurcのReplaceを以下のように設定した。

Replace  (/[A-Za-z]\|.*/)(diary)/(.*)(.html)  http://mixi.jp/view_diary.pl?id=\3&owner_id=自分のmixiID
Replace  (/[A-Za-z]\|.*/)(.*)/(.*)(.html)  http://mixi.jp/view_message.pl?id=\3&box=\2

日本語プログラミング言語なでしこで検索ツールを作っているのだが、なでしこの場合、Namazuが出力したHTMLファイルを上と同じように書き換えるには以下のようにする必要があった。

「(/[A-Za-z]\|.*/)(diary)/(.*)(.html)」を「http://mixi.jp/view_diary.pl?id=$3&owner_id=自分のmixiID」に正規表現置換
「(<.*")(http.*=)(.*)(&owner_id=自分のmixiID)(</a>)」を「$1$2$3$4">$2$3$4$5」に正規表現置換
「(/[A-Za-z]\|.*/)(inbox)/(.*)(.html)」を「http://mixi.jp/view_message.pl?id=$3&box=$2」に正規表現置換
「(<.*")(http.*id=)(.*=inbox)(</a>)」を「$1$2$3">$2$3$4」に正規表現置換
「(/[A-Za-z]\|.*/)(savebox)/(.*)(.html)」を「http://mixi.jp/view_message.pl?id=$3&box=$2」に正規表現置換
「(<.*")(http.*id=)(.*=savebox)(</a>)」を「$1$2$3">$2$3$4」に正規表現置換
「(/[A-Za-z]\|.*/)(outbox)/(.*)(.html)」を「http://mixi.jp/view_message.pl?id=$3&box=$2」に正規表現置換
「(<.*")(http.*id=)(.*=outbox)(</a>)」を「$1$2$3">$2$3$4」に正規表現置換
「(/[A-Za-z]\|.*/)(thrash/)/(.*)(.html)」を「http://mixi.jp/view_message.pl?id=$3&box=$2」に正規表現置換
「(<.*")(http.*id=)(.*=thrash)(</a>)」を「$1$2$3">$2$3$4」に正規表現置換

ローカルのパスを置換するのと、HTMLファイルの中を置換する違いがある。なでしこが長くなるのは最初の変換でリンク部分(Aタグ)の変換がうまくできないため。最長マッチになるので、変換すべきでないところまで変換してしまうのだ。うまく書けば、そうならないのかもしれないが、どう考えてもnamazurcで設定した方がすっきりしているので、こちらを採用。


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