クイックスタート
チュートリアル
ツールと言語
リファレンス
書籍レビュー
書籍レビュー
Regular Expressions Cookbook
Teach Yourself Regular Expressions
Mastering Regular Expressions
Java Regular Expressions
Oracle Regular Expressions
Regular Expressions Pocket Reference
Regular Expressions Recipes
Regex Recipes for Windows
このサイトのその他の情報
はじめに
正規表現クイックスタート
正規表現チュートリアル
置換文字列チュートリアル
アプリケーションと言語
正規表現の例
正規表現リファレンス
置換文字列リファレンス
書籍レビュー
印刷可能なPDF
このサイトについて
RSSフィードとブログ

Jeffrey Friedl著「Mastering Regular Expressions」

本書の最初の6章(283ページ)は、一般的な正規表現を扱っています。簡単なチュートリアルを期待しないでください。本書は、正規表現に関する事前の知識がなくても読むことができますが、実際には、基本をすでに理解し、正規表現を最大限に活用する準備ができている人を対象としています。このウェブサイトの正規表現チュートリアルを最初に読んで経験を積んでおくと、本書の内容をより理解することができます。

本書は、正規表現の使用方法を教えることではなく、正規表現を効率的に使用する方法に焦点を当てています。正規表現エンジンの内部動作や、その知識を活用する方法に関する詳細な情報が豊富に掲載されています。また、さまざまな正規表現の種類とその微妙な違いについても比較しています。

すぐに使えるリファレンステーブルやコピー&ペースト用の例は期待しないでください。この本(特に最初の6章)は、最初から最後まで読む(あるいは、勉強すると言うべきでしょうか)ことを目的としています。すぐに解決策が必要な場合は、この本は適していません。実践的な実例をたくさん知りたい場合は、同じ出版社のRegular Expressions Cookbookを購入してください。

本書の最後の4つの章は、それぞれ、今日おそらく最も広く使用されている4つの正規表現の種類のいずれかを扱っています。これらの言語に関する一般的なプログラミング書籍には、通常、正規表現を扱った章がありますが、本書の章とは比較になりません。他の書籍では、正規表現の構文(Mastering Regular Expressionsの最初の6章で説明されています)について不完全な紹介を行い、一般的な正規表現関数に使用する関数とクラスについて説明しています。一方、Mastering Regular Expressionsの4つの言語の章では、それぞれの言語の落とし穴と特殊な機能に焦点を当てています。正規表現や対象のプログラミング言語に慣れていないプログラマーにとっては、内容が濃すぎるかもしれません。しかし、プログラミング言語をマスターする準備ができている人にとっては、豊富な情報が得られます。

第7章では、Perlとその多くの正規表現関連の機能とテクニックについて説明します。正規表現はPerl言語の中核となる部分であり、ほとんどすべてのPerlスクリプトの重要な部分を形成しています。ここでは、他のどのPerlに関する書籍(私が知っている限り)でも教えてくれないことをすべて学ぶことができます。Perlプログラミングに関する一般的な書籍には、通常、正規表現クイックスタートを含む1つの章がありますが、「Mastering Regular Expressions」では、Perlで正規表現を最適に活用する方法を学ぶことができます。

Javaの章では、java.util.regexパッケージについて詳しく説明しています。このパッケージは、Java 4(JDK 1.4)以降で使用できます。この章では、Java 5(JDK 1.5)とJava 6(JDK 1.6)の修正と新機能を含め、java.util.regexパッケージについて知っておく必要があるすべてのことを説明しています。2つの部分で構成されています。ここには多くの詳細があり、正規表現に慣れていない場合は圧倒されるかもしれません。その場合は、「Mastering Regular Expressions」と一緒に、Mehran Habibi著の「Java Regular Expressions」のコピーを入手することをお勧めします。

第9章では、Microsoftの.NETフレームワークの正規表現サポートと、その最適な使用方法の概要を説明しています。この章では、.NET SDKに付属のドキュメントにはない多くの情報が提供されています。.NETの章だけのためにこの本を購入することはお勧めしませんが、「Mastering Regular Expressions」は、プログラミングフレームワークの優れた正規表現サポートを最大限に活用したい.NETプログラマーにとって、確かに良い買い物です。

最後の章では、PHPのpreg関数と、それが基づいているPCREライブラリについて説明しています。すべてのPHP関数とそのパラメータの複雑な使用方法が説明されています。PHPの章では、再帰パターンなどのPCRE独自の機能を含む、PCREの正規表現の種類についても説明しています。この本では、C/C++アプリケーションでPCREを使用する方法については説明していません。

3つの版の違い

1997年に初版が出版された当時、「Mastering Regular Expressions」は、特にPerl 5に実装されている最新の正規表現に関する確かな情報が掲載された唯一の書籍でした。すぐに、正規表現についてもっと知りたい人のための必読書となりました。初版はPerlに重点を置いていました。

第2版(2002年)は徹底的に改訂されました。PerlJava.NETを均等に扱っています。Javaの章では、当時最新のjava.util.regexパッケージに加えて、Java用のさまざまな正規表現ライブラリを網羅していました。

第3版(2006年)は、第2版とほぼ同じです。Javaの章では、java.util.regexパッケージのみを扱っており、他のパッケージが時代遅れになったため、より詳細に説明しています。PHPのpreg関数と、preg関数が基づいているPCREライブラリを扱った章が追加されています。

このページのAmazonへのリンクは、第3版へのリンクです。

その他の言語版

Mastering Regular Expressionsはいくつかの言語に翻訳されています

PHPが唯一の関心のある言語でない限り、第2版は第3版と同じくらい役に立ちます。