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

Java Regular Expressions by Mehran Habibi (Apress)

「Java Regular Expressions」は、250ページの行間が広めのテキストで構成され、5つの章に分かれています。最初の章は正規表現の導入で、基本的な正規表現構文を説明しています。この本のペースは、このウェブサイトのチュートリアルよりも遅いです。正規表現の「落とし穴」やフレーバー間の違いの多くは説明されていません。明らかに、この本は正規表現に比較的慣れておらず、Javaでのみ使用することを計画している人を対象としています。

第2章は、この本の最も役立つ部分です。java.util.regexパッケージのすべてのクラスと、それらのほぼすべてのメソッドについて説明しています。ほとんどの説明には、その使用方法を示すJavaソースコードの例が付属しています。英語ではなくJavaソースコードを読んで学習したい場合は、これらのコードスニペットが役立ちます。

第3章では、遅延量指定子や所有量指定子(本書では「修飾子」と呼ばれています)、先読み・後読みなど、高度な正規表現構文について説明しています。残念ながら、ここから本の質が低下し始めます。選択肢を使用するなどの小さなエラー(I|i)ceはるかに効率的な文字クラスの代わりに[Ii]ce(104ページ)を使用したり、\dが置換テキスト内の数字を表すと述べている(107ページ;\d正規表現では機能しますが、置換では機能しません)のは、編集のずさんさに起因する可能性があります。しかし、肯定先読みを説明することを意図した例(130ページ)は、単に間違っています。正規表現(?=^255).*は、^255.*とまったく同じ動作をします。先読みの重要な側面(一致するテキストを消費しない)は、この例ではまったく関係ありません。

第4章は、本書から簡単に省略できたはずです。正規表現よりもオブジェクト指向プログラミング技法について詳しく説明しています。アドバイスの中には疑問符が付くものもあります。著者は、正規表現を外部ファイルに保存することを提案しており、アプリケーションを再コンパイルせずに編集できます。このアドバイスの問題点は、正規表現がコンテキストなしで外部ファイルに置かれるため、理解するのがはるかに難しくなることです。これは、この本の重要なセールスポイントである「ほとんどの概念はJavaコードで使用される正規表現で説明されている」という点と矛盾します。後で別のプログラマーがコードを保守する必要がある場合は、RegexBuddyなどのツールを使用して、詳細な英語の説明をJavaコメントとしてJavaソースコードに挿入する方が良いでしょう(RegexBuddyは「使用」タブで生成します)。

第5章では、Javaで正規表現を使用して多くの実際のタスクを実行する、より精巧な例をいくつか示します。例は比較的単純ですが、すべてをうまくまとめています。

この本を買うべきでしょうか?完璧ではないことは確かですが、Javaに精通しているが正規表現の経験がほとんどない、またはまったくないJava開発者には、この本をお勧めします。java.util.regexパッケージの説明は、JDKに付属のドキュメントよりもはるかに詳細です。ただし、正規表現構文自体の詳細を学ぶには、このウェブサイトのチュートリアルなど、別のリソースでこの本を補完する必要があります。