2008年04月29日 00:00 [Edit]

フクロウ本も三代目 - 書評 - 詳説 正規表現 第3版

オライリー矢野様より献本御礼。いつもありがとうございます。

初出2008.04.23; 販売開始まで更新

「正規表現のバイブル」も、第三版となって邦訳登場。


本書、「詳説 正規表現 第3版」は、正規表現(regexp)に関するこの地球上で最も包括的(comprehensive)な専門書。かつては入門書すら存在せず、そのおかげで「正規表現といえばフクロウ」だった第一版から10年。正規表現の利用シーンは格段に増え、書籍の方も「入門正規表現」が出るなど、正規表現の敷居は格段に低くなった。

目次 - oreilly.co.jp -- Online Catalog: 詳説 正規表現 第3版より
    はじめに
    1章 正規表現入門
    2章 初心者向けのサンプル
    3章 正規表現の機能と方言
    4章 正規表現処理のメカニズム
    5章 正規表現の実践的なテクニック
    6章 効率のよい正規表現の作り方
    7章 Perl
    8章 Java
    9章 .NET
    10章 PHP
    索引

それでは、本書はどうかというと、「やはり本家はいい」ということになる。正規表現一般に関しては「入門正規表現」でもいいが、ホスト言語をまたがった正規表現の「方言」や、メカニズムやテクニックといった中級以上の話題ではさすがに役者不足。「入門正規表現」でもプロの入口までは行けるが、そこから先は本書の独擅場だ。

それでは、本書は初心者お断りかというと、そうでもない。いや正確にいうとそうでもなくなった。第一版はかなり難しかったが、第三版である本書は単に新しい話題を加えたに留まらず、古い話題でわかりにくかった部分をばっさり切っている。そのおかげで前版よりはるかに初心者に優しい一冊に仕上がっている。オライリーによると、「財布にもやさしい」とのことである。確かに税込み5,040円と、わずかに5,000円を越えてしまっているが、それでも第二版の定価は5,670円だったので1割以上のコストダウンだ。

一つ残念だったのが、PHPが加わった一方で、JavaScriptが索引にすら登場しないこと。原著は2006年8月発行であるが、その頃にはすでにJavaScriptも「汚名」を雪いで、Ajaxの利用が広がっていたことを考えれば、これは実にもったいない。ましてや今やJavaScriptの利用はその時よりもさらに広がっている。

しかも、JavaScriptにおける正規表現の利用法というのは、「素直」かつ「きれい」なのだ。例えばPerlの

my %esc = ( '<' => '&lt;', '>' => '&gt;', '&' => '&amp;', '"' => '&quot;' );
sub encode_entities{
  my $str = shift;
  $str =~ s{([<>&"])}{$esc{$1}}gex;
  $str;
}

は、JavaScriptだと

var esc =  {'<':'&lt;', '>':'&gt;', '&':'&amp;', '"':'&quot;'};
function encode_entities(str){
  return str.replace(/[<>&"]/g, function(m0){
    return esc[m0];
  });
};

となるが、$1という特殊変数が不要な点も、特別な文法を用いずに置換をclosureでやっている点もエレガントである(その分冗長でもあるが)。コラム扱いでもいいから紹介ぐらいはしておいて欲しかった。

その点を除けば、本書は文句無しに正規表現のバイブルである。個人単位でなくとも、会社単位では常備しておきたいものだ。

Dan the Regular Expressionist


この記事へのトラックバックURL

この記事へのトラックバック
書評リンク - 詳説 正規表現 第3版
詳説 正規表現 第3版【書評リンク】at 2008年08月06日 08:48
入門正規表現 岩谷宏 ちがうよ!バグじゃないよ! 404 Blog Not Found:perl - Encode-2.31 Released, 2.30 zapped, regexp bug in 5.10.0ちょっと調べてみると.... % perl5.10.0 -le 'print "perl" =~ /^\w{1,8}+$/' 1 % perl5.8.8 -le 'print "perl" =~ /^...
regexp - possessive quantifier (独占的|絶対最大)量指定子とは何か?【404 Blog Not Found】at 2009年02月16日 22:43
読了
[本]詳解 正規表現 第3版【Bugle Diary】at 2010年03月22日 22:05
オライリー矢野様より献本御礼。 正規表現クックブック Jan Goyvaerts / Steven Levithan / 長尾高弘訳 [原著:Regular Expressions Cookbook] もっと早く出てしかるべきだった一冊。 と同時に、「言語繚乱」とも言える今でこそ出せた一冊でもある。 こう叫び...
/for more regexp users/ &gt; any(other) - 書評 - 正規表現クックブック【404 Blog Not Found】at 2010年04月21日 17:29
この記事へのコメント
s/わかりずらかった/わかりづらかった/;
Posted by jiangmin at 2008年04月23日 04:32
かなり前にsed、awkが載ってた頃の版を買いましたが、初心者の私でも普通に分かり易かったですね。
オライリー好きにもなった一冊ですね。翻訳が素晴らしく読みやすい記憶があります。
Posted by たかおん at 2008年04月25日 21:54
try{
 it(/(.*素直|.*きれい)/.test(this)) return true;
}catch(e){
return money;
}
Posted by マニマニマニ at 2008年04月26日 02:15
デスクトップリファレンスのほうには JavaScriptの章があるんですけど残念ですね
Posted by sume at 2008年04月29日 22:45
いつの間に第3版が、って23日発売ですか。
あれ、昨日丸善に行った時にはあったのね。ショック・・・
第2版は持ってます。この本は全てのプログラマの必読書でしょう。
で、PHPにはあんまり興味無いんですが、第2版と比べてどうなんですかね・・・
Posted by kariyam at 2008年04月30日 01:58