mimizunのhtmlをdatに変換するperl書いた。

htmltodatをいじってる間に正規表現書くならこう書いたほうが早いと思ってしまいました。相変わらず需要があるのかよく分かりませんが

#!/usr/bin/perl

while(<>){
    if(m#<DIV[^>]*>(?:<A[^>]*>)?([0-9]+).+?<span class="handle">(?:<A HREF="mailto:(.+?)">)(.*?)(?:</A>)</span>:(.*?)</DIV><DIV CLASS=\"RES\">(.*)</DIV>#i){
	#メール欄あり
	print "$3<>$2<>$4<>$5<>\n";
	next;
    }
    if(m#<DIV[^>]*>(?:<A[^>]*>)?([0-9]+).+?<span class="handle">(.*?)</span>:(.*?)</DIV><DIV CLASS=\"RES\">(.*)</DIV>#i){
	#メール欄なし
	print "$2<><>$3<>$4<>\n";
	next;
    }
}

メール欄が無いときに$2に空文字列いれる事ができれば$3以降がずれなくて、場合わけしなくてもいけたのですが、やり方わかりませんでしたorz あ、あとみみずんのhtmlで書き込みの途中で改行(<br>でなくて\n)が入ってる事があって、その場合にはその書き込みはdatに出力されません。htmlの方を編集して改行をなくしたほうが早いと思って何もしませんでしたw