概要
テキスト処理(文字列処理)における効果抜群のツール、正規表現。
巨大なテキストデータの検索/置換や変換/集計などを行う際,正規表現を使うと作業効率が格段に上がります。本書は,正規表現の代表的なメタキャラクタ,Ruby/Perl/PHP/Java/JavaScript等をカバーした処理系ガイド,知っておきたい正規表現パターンの作り方がわかるパターンレシピ,コンパクトながら正規表現の使い所を押さえたプチプログラムを,一目で引けるリファレンス形式でまとめました。プログラマ必携の1冊です。
追加情報
はじめに ──第2版改訂にあたって
初版『正規表現ポケットリファレンス』の出版から9年ほどが経ちました。この間,インターネットプログラミングの世界では,スマートフォンの台頭,HTML5やJavaScript関連の革新など,テクノロジーやプラットフォームの様々な変化がありました。しかし,依然として,あらゆるプログラミングにおいて,正規表現の重要性はとても高く,すべてのプログラマにとって学ぶ価値の高いものであることは何も変わっていません。
初版は,ある程度のプログラミングができるようになり,これから正規表現にチャレンジしてみたいという方を想定して書かれました。第2版でも同様の読者層を想定しています。第2版では本書執筆時点での最新のプログラミング言語に対応した内容に改訂されました。初版の出版から現在までに,プログラミングにおける日本語環境の状況も変わってきました。以前はShift_JISやEUC-JPなど環境によっていくつかの種類の文字コードが使い分けられ,とくに英語圏などで開発されたプログラミング言語では,日本語環境にうまく対応できていないことが少なくありませんでした。しかし,現在では,Unicodeの普及と対応が進み,日本語対応で悩むこともずいぶん少なくなり,正規表現を活用できる幅がさらに広がっています。
正規表現のスキルはこの先もずっと活用できる資産になるのと同時に,プログラミングが楽しくなるツールにもなります。ぜひ楽しく学んでいただけらたと思っています。
本書の動作確認環境について
本書では,以下のバージョンの処理系にて動作確認を行いました。
- Ruby 2.2.3
- Perl 5.21.11
- PHP 5.6.9
- ECMAScript(ECMA-262) 5.1 edition
- Java Platform, Standard Edition 8(1.8.0)
本書の読み方について
筆者の本職はプログラマですが,Perlに出会ってから一部の仕事が劇的に楽になりました。たとえば巨大なテキストファイルからのデータの検索や変換,集計などの雑用仕事。テキストエディタだけでもできなくはないけど,とてつもなく面倒。これが「ちょい」とプログラムを作るだけで簡単にこなせるようになったからです。
Perlが持つ強力なパワーの筆頭が,まさに「正規表現」です。正規表現によって,お堅いコンピュータに曖昧な指示を出すことができるようになったのです。正規表現がなくても根性さえあれば同じ仕事はできるでしょう。でも正規表現を使うことで大幅に「楽」ができる。正規表現を使える人と使えない人とでは,仕事の早さに大きな違いが出るはずです。
はじめのうち,正規表現パターンは暗号文のように感じられるかもしれません。単なる記号であるメタキャラクタを覚えるのは暗記の世界です。しかし,最初からすべて覚える必要はありません。「keyword」のような単純なテキストも立派な正規表現なのです。必要に応じて必要なメタキャラクタを調べて,肉付けしていけばよいのです。正規表現を使いこなすまでの道のりは,それほど長いものではありません。単に「あれば便利」な道具に過ぎないのですから。
本書の使い方ですが,まずはざっと全体に目を通して頂いて,「こんな機能があるのか」程度に,正規表現の機能をおおまかに理解してください。あとは実際に正規表現を使っていく中で「あんな機能があったような気がする」と思ったところで,再度この本を開き,今度はリファレンスとして活用してください。
※『正規表現ポケットリファレンス』(初版より)
本書の読者対象の方について
本書は,いつも利用するツールやプログラミング言語で「正規表現」という単語を見つけ,これを使えば仕事がはかどるのではないかと気付いた方々,すなわち,基礎的なプログラムを書くことができるようになったプログラマや,テキストエディタなどで効率的なテキスト処理をしたい方々を想定して執筆しました。普段,正規表現が利用できるツールをすでに使っている方で,これから正規表現にチャレンジしてみたいという方々に,本書がお役に立てば嬉しく思います。