ISBN ハイフン編集用テーブル生成
via http://d.hatena.ne.jp/natu_n/20061108/1162984712
ISBN はハイフンの位置が地域によって異なる。 The International ISBN Agency にあるスクリプトから編集用のテーブルを生成してみた。
#!/user/bin/perl use strict; use warnings; use LWP::UserAgent; use YAML qw/Dump/; use JSON qw/objToJson/; my $resp = LWP::UserAgent->new->get( 'http://www.isbn-international.org/converter/ranges.js'); $resp->is_success or die; my $areas = {}; my $js = $resp->content; $areas->{$1} = { name => $2, ranges => [map { [split /-/] } split /;/, $3] } while ($js =~ /gi\.area(\d+)\.text="(.+)";\ngi\.area\d+\.pubrange="([\d\-;]+)";/g); print Dump $areas; print objToJson $areas;
# YAML --- 0: name: English speaking area ranges: - - 00 - 19 - - 200 - 699 - - 7000 - 8499 - - 85000 - 89999 - - 900000 - 949999 - - 9500000 - 9999999 1: name: English speaking area ranges: ... # JSON {"99953":{"name":"Paraguay","ranges":[[0,2],[30,79],[800,999]]},"99923":{"name":"El Salvador","ranges": ...
実際ハイフン編集するときは探索しやすい形式に変換するかも。
調べごとをすると id:natu_n さんのところにたどり着くことが多い昨今。休み中に過去記事あさらせて頂きます。