Jeffrey E. F. Friedl
詳説
正規表現
ガイド
書誌
author | Jeffrey E. F. Friedl |
editor | 歌代和正(監訳), 春遍雀來, 鈴木武生(訳) |
publisher | オライリー・ジャパン |
year | 1999 |
price | 4,300 |
isbn | 900900-45-1 |
履歴
editor | 唯野 |
2001.6.20 | 読了 |
2001.6.21 | 公開 |
2002.11.28 | 修正 |
2012.1.17 | タグ追加 |
2020.2.25 | 文字化け修正 |
通称フクロウ本。正規表現(regular expression : regex)を正面から扱った貴重な本である。最近は類書も出ているようだが、現在でも正規表現を本格的に掘り下げて扱う本は実質的に本書しかないといっていいだろう。正規表現は私も始めは意味不明な記号の羅列に見えて敬遠していたもののひとつだが、今では「知っててよかった」と思うもののひとつである。
むろん、正規表現だけでは単なるマッチングなので、それと併用できるツール(Perl etc..)への習熟が一方では必要になるものの、そこから得られるパワーは非常に強力である。正直なところ、個人的には本書で紹介されているような一部の高度な最適化の求められるケースはあまり多くないように思ったが(内容が完全に理解できていないということだ :-))、Perl における詳細な正規表現ルール(本書の約 1/3 がそれに当てられている)といった具体的な詳細の数々は、確かに関連書籍で薦められるだけの頼り甲斐がある。私自身はツールとして Perl しかほとんど使わないので他のツールでの話などは流し読み程度だが、逆にいうと Perl を本格的に使いこなしたい場合における避けて通れない一冊なのは確かだろう。
抄録(一般)
5/78/82
正規表現は特殊な意味を持ったメタ文字(meta character)とそれ以外の普通のテキスト文字であるリテラル(literal)から構成される。メタ文字の扱いはツールによって幅があるため、あるエスケープをそのツールがサポートしなければ、それは単なる文字列の正規表現として渡されることになる。
10/58
「^cat$」は cat だけから成る行、「^$」は空行、「^」のみは行頭のある行、即ち空行を含む全ての行にマッチする。最後はケースは「$line =~ s/^/> /;」で行頭に引用記号を付けるようなときに利用できる。
11/123/140
否定文字クラスは「指定されていない文字とマッチせよ」であって、「指定されているものとマッチしてはならない」という意味ではない。これに関連してマッチは常にマッチ不成立よりも優先される = 必須でないものは必ずマッチに成功する点がある。これを見逃すと不要なものへのマッチが起こることになる。