クイック スタート
チュートリアル
ツール & 言語
リファレンス
書評
書評
正規表現クックブック
正規表現を独習する
正規表現マスター
Java正規表現
Oracle正規表現
正規表現ポケットリファレンス
正規表現レシピ
Windowsのための正規表現レシピ
このサイトの他のコンテンツ
はじめに
正規表現クイックスタート
正規表現チュートリアル
置換文字列チュートリアル
アプリケーションと言語
正規表現の例
正規表現リファレンス
置換文字列リファレンス
書評
印刷可能なPDF
このサイトについて
RSSフィード & ブログ

ネイサン・グッド著「Windows開発者のための正規表現レシピ」(Apress)

この本のタイトルを見たとき、詳細な正規表現の例が満載の本であることに興奮しました。残念ながら、そうではありませんでした。

359ページという大ボリュームにわたって、この本は正規表現で達成できるタスクを正確に100個リストアップしています。解決策として、著者は正規表現だけでなく、C#VB.NETJavaScriptVBScriptでの完全なソースコードスニペットも提供しています。すべてのソリューションがすべての言語でスニペットを持っているわけではありません。いくつかのソリューションにはASP.NETのスニペットもあります。

明らかに、例はWindowsと.NETに大きく偏っています。オープンソース言語を使用している場合は、この本の前身である正規表現レシピを代わりに検討してください。基本的に同じ本で、ほぼ同じレシピのリストですが、PerlPHPPythonの例が含まれています。

各レシピには「どのように動作するか」セクションもあり、基本的には正規表現を英語で書き起こしています。これはRegexBuddyのプレーンな英語の正規表現ツリーに似たアプローチですが、本ではツリーではなくフラットな説明を使用しています。ただし、説明は簡潔です。すべてのソースコードスニペットがレシピあたり2ページ以上を簡単に占めるのに対し、説明は多くの場合、わずか半ページ程度です。

この本はいくつかのずさんな編集に苦しんでいます。ソースコードスニペットの正規表現は、説明にあるものと常に同じではありません。たとえば、レシピ6-21では、JavaScriptスニペットは名前付きキャプチャを使用しています。次に、説明では名前付きキャプチャなしの正規表現について説明しています。JavaScriptは名前付きキャプチャをサポートしていません。これらの問題のほとんどは些細なものですが、明らかに初心者向けの本としては良くありません。

ほとんどのレシピは、6つの章に整理された、かなり基本的な問題を解決しています。最初の「単語とテキスト」では、空白行、繰り返される単語、行の先頭または末尾にある単語の検索などを扱います。「URLとパス」の章には、URLとファイルパスの検索と、それらからのビットの抽出の例があります。「CSVとタブ区切りファイル」には、2つの形式間の変換とフィールドの抽出のためのいくつかのレシピがあります。

「フォーマットと検証」の章では、数値、通貨、日付、電話番号、住所などを検証する方法を示しています。「XMLとHTML」の章には、タグと属性のマッチングと置換のレシピがあります。最後に、「ソースコード」の章には、ソフトウェアソースコードおよび関連ファイルを操作するための多数のレシピがあります。これらのタスクのほとんどは、.NETプログラマーが時々実行したいと思われる雑務です。

この本は、正規表現に焦点を当て、多数のソースコード行、さらには複数の言語での冗長なコピーを省略していれば、より良い取引になっていたでしょう。ソースコードなしで、同じサイズの本に300個の例を簡単に含めることができたでしょう。それは、プログラミング方法を知っているが、正規表現に精通していないプログラマーにとって、はるかに役立つものになっていたでしょう。

現状では、この本は正規表現だけでなく、プログラミングも比較的初心者である人にしかお勧めできません。この本には、.NETアプリケーションやWebサイト用のスクリプトを作成するときに遭遇する可能性のある基本的な問題を解決する多くのレシピが含まれています。C#、VB.NET、JavaScript、またはVBScriptを使用しており、クックブックアプローチを探している場合は、この本がきっと役立つでしょう。

しかし、この本から本当に正規表現の仕組みを学ぶことは期待しないでください。プログラマーとして生計を立てているのであれば、優れた正規表現チュートリアルまたは「正規表現クックブック」のような本をお勧めします。