2008年03月07日 00:00 [Edit]

get($one) if $you =~ /regexp user/;# 書評 - 入門正規表現

技術評論社書籍編集部池本さんより献本御礼。

初出2008.03.05;販売開始まで掲載
404 Blog Not Found:書評x3 - SQL本三大対決
言語内言語としてこれだけ使われるようになったSQL。そうするともう一つの言語内言語、正規表現が気になる。しかしこちらの方はSQLと違って、現在のところ「フクロウ本」の一人勝ちのように思える。誰か書かない?

キタコレ!それも想定の範囲内の出版社と、想定の範囲外の著者の組み合わせで。


本書「入門正規表現」は、タイトルどおりの本。正規表現に関しては今まで「フクロウ本」こと「詳細 正規表現」がほぼ唯一の選択肢だったが、原著も訳書も6,000円近い大著であり、初心者向けとはとても言えなかった。本書は「ラクダ本」に対する「リャマ本」の役目を、正規表現という言語において担うものだ。

目次 - 書籍案内:入門 正規表現 ―検索・置換・テキスト処理に強くなる!|gihyo.jp … 技術評論社より
第0章 正規表現って,どうゆう意味? - それは言葉の規則性,パターンを表します
第1章 正規表現の部品を理解しよう - 主役は文字指定と量指定
第2章 文字を指定する正規表現 - 具体的な文字と抽象的な指定
第3章 量を指定する正規表現 - "満腹"と"腹八分"の違いが重要
第4章 位置を指定する正規表現 - 対象テキストの形や構造をつかむ
第5章 特殊な指定をする正規表現 - 便利な小道具の数々
第6章 正規表現を何のために使う? - 検索と編集が二大目的
第7章 自作のプログラムから正規表現を使う
第8章 正規表現アラカルト
おわりに - bonus track

本書の素晴らしいのは、「入門」だからといって全く手を抜いていない事。量指定子(quantifier)の.*.*?の違いもきちんと解説しているし、今なお充分使われているとは言えない(?=lookahead) および (?<=lookbehind) assertionsもきちんと紹介している。

それでいて、ページ数が150ページあまりしかないので、見たいページがすぐに出てくる。版型も「オライリー動物」版でなくてA5。これは使いやすい。

「これは思い切ったな」というのが、文字の例としてかな漢字を遠慮なく使っている点。Perl 5.8以前の正規表現では、漢字を一文字として扱えなかったのだが、もうPerl 5.8が出てから5年あまり。そろそろ安心して使って良いだろう。ただし「ホスト言語」には注意。Ruby 1.8って[一-龠]できたっけ?鬼車入りの1.9はOKだったはずだけど。

それでちょっと不安になったのが、数少ない言語依存の例で、著者がJavaを使っている事。JavaのStringクラスの「文字」って、サロゲートペアは二文字だったはず。JavaもJavaScriptも、この問題を今なお抱えているはずなのだけど。詳しくは

を参照のこと。

404 Blog Not Found:書評 - 暗算の達人
著者としてはつっこみどころが多い人でもあるのだけど

なのだけれども、本書は入門書でありながら、上級者レベルまで納得できる出来。特に薄いところ、「ホスト言語」にほぼ非依存なのが最高である。そして手前味噌ながら、本書のような本に使えるレベルまで正規表現が強化されたことを、Perl 5.8の産婆の一人として誇らしく思う。

それだけに、Java(Script)?の「文字」の扱いには時折イラっと来てしょうがないのだけど。最近はBMPに載ってない字を扱う事も増えて来たし....

Dan the Regular Expressionist

ところで著者の生年が1942年というのは最近知った(50年代と思ってた)。これが一番の驚きだったりして。


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

この記事へのトラックバック
オライリー矢野様より献本御礼。 正規表現クックブック Jan Goyvaerts / Steven Levithan / 長尾高弘訳 [原著:Regular Expressions Cookbook] もっと早く出てしかるべきだった一冊。 と同時に、「言語繚乱」とも言える今でこそ出せた一冊でもある。 こう叫び...
/for more regexp users/ &gt; any(other) - 書評 - 正規表現クックブック【404 Blog Not Found】at 2010年04月21日 17:29
入門正規表現 岩谷宏 ちがうよ!バグじゃないよ! 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版 Jeffrey Friedl 株式会社ロングテール / 長尾高弘訳 [原著:Mastering Regular Expressions (3rd Ed.)] 初出2008.04.23; 販売開始まで更新 「正規表現のバイブル」も、第三....
フクロウ本も三代目 - 書評 - 詳説 正規表現 第3版【404 Blog Not Found】at 2008年04月23日 02:26
この記事へのコメント
最後びっくり
Posted by 安室 at 2008年03月07日 23:00