■目次
PHPを使う利点
必要なもの・こと
PHPのバージョン
キャッシュ
ウェブサービスからデータを取得する
XMLのパース
Last.fmのウェブサービス
WebAPIとPHPを使ってWebページを自動生成する
コメントなどは・・・
目次の自動生成
Web API(PHP)に関連した書籍
正規表現に関連した書籍



■PHPを使う利点

まずは、PHPを使う利点を考えてみましょう。
PHPという言語は、サーバーサイドで動作するHTML環境にマッチしたプログラミング言語です。
既存のHTMLファイルの拡張子を.phpに変更して、<?php 〜 ?>の〜の部分にPHP言語でコードを書き込むだけで、動的な処理が簡単に実現できます。
後述しますが、このページの一番上の目次は、PHPを使って自動生成しています。
また、PHPはC言語などの高級言語に似ているので、他の言語経験が何かしらあれば、それほど苦労せずに習得できるのもGoodです。

▲ページ先頭へ戻る▲


■必要なもの・こと

  • 知識
    まずは、HTML及びXMLの知識が必要です。とはいっても、HTMLに関してはごく小数のタグを押さえておけば、問題ないですし、XMLに関しても後述するXMLパース関数であるsimplexml系列の関数であまり意識しなくても使用できますので、そう心配する必要はありません。多くのWebサービスでは、ユーザーからのリクエストに対しての返答をXML形式の文書で返してくれます。
    このリンクをクリックすると、HTML入門書関連書籍の一覧とユーザーレビューを見ることが出来ます
    このリンクをクリックすると、XML入門書関連書籍の一覧とユーザーレビューを見ることが出来ます
  • リファレンス
    何らかの言語のプログラミング経験のある方なら、PHPオフィシャルサイト - PHP マニュアル -で事足りると思います。サンプルも豊富ですし。サンプルの説明は英文ですが、それほど問題にはならないでしょう。基本的にはコードの塊ですし。
    書籍が必要な場合は、下のリンクを参考に探してみるとよいでしょう。
    ここをクリックすると、PHP関連書籍の一覧とユーザーレビューを見ることが出来ます
    プログラミング経験がまったくない、という方は、Web検索してみると、PHP入門者向けのページがあるので、そこで勉強してから、このページに帰ってきたほうがよいと思います。
  • 環境
    環境といっても、いろいろあります。
    • テキストエディタ
      基本的には、どのテキストエディタでもOKです。リクエストに使用するエンコードやXML返却データの文字コードがUTF-8になっていることが多いので、UTF-8対応のテキストエディタを使用すると、何かと手間が省けて便利です。
    • ローカル実行環境
      PHPオフィシャルサイトでダウンロードできるので、これを自分のPCにインストールすればOKです。
      一番上にあるメニューの「ダウンロード」をクリックすると、ダウンロードページへジャンプできるので、そこから自分のPCで使えるファイルをダウンロードし、解凍し、インストール、といった手順になります。
    • Web実行環境
      Linuxなどで自宅サーバーを構築している場合は、PHPを追加インストールするだけでWebからもアクセス可能なページが作成できます。
      ただ、自宅サーバーを構築している方はごく小数だと思うので、実際にはPHPに対応したレンタルサーバーのお世話になることになります。このウェブサイトもPHPに対応したレンタルサーバーで運営しています。
      探してみると分かるのですが、PHPに対応した無料レンタルサーバー事業者はかなり少ないです。少々の出費は覚悟しておいた方がいいです。
      また、アフィリエイトを使用しないのであれば、以下のレンタルサーバー事業者が無料HPにPHP機能を付加して提供してくれていますので、試してみてもよいかも。
      • dan-d

        ドメイン名がとってもダンディーなのが、魅力!?
        容量無制限でPHP4が使用可能です(個人的に試したところ、PHP5でした。サーバーによって異なるのかもしれません)。
        有料で広告免除サービスも用意されているので、気に入ったら、広告非表示にしてメインのウェブサイトとして使用することも可能です。
      • TOK2

        無料で使える容量無制限レンタルサーバー
        こちらも同様の容量無制限の無料ホームページ。
        無料プランでは、広告が付きますが、PHP5が利用できます。
      ●予算に余裕のある方は、有料タイプのレンタルサーバーを検討してみてもよいでしょう。
      さほど人気サイトにならなくても、意外と早く初期投資分は戻ってきます。
      • ロリポップ!
        「ナウでヤングなレンタルサーバー」でおなじみ?のロリポップですが、サブドメイン名が選択できる、というのがポイント高いですね。どんなサブドメイン名があるかは、上のリンクをクリックすると、ロリポップのHPにジャンプするので、そこで確認できます。
        PHP4というのがちょっとネックかな。それ以外のスペックは十分だと思います。
        07年6月26日現在の料金は、1ヶ月、3ヶ月契約なら月額315円、6ヶ月以上なら月額263円(初期費用が別途必要、詳しくは、上記リンク先で)となっています。
        サポートは、電話サポートはなしで、HPからの問い合わせフォーム経由でのサポートです。
      • ブロックグループ(BLOCKGROUP)

        ブロックグループ!月額250円で1Gの大容量・高機能のレンタルサーバ!
        初期費用無料・月額250円で1Gの大容量・高機能のレンタルサーバ
        バージョン管理機能(Subversion)の標準実装、共同編集機能、パスワード設置機能など、豊富な機能
        Apach2.2 PHP5 MySQL5 UTF-8 IMAP4ベース:最新のサーバ環境で構築
        同社曰く、「新しく作るのだったら、いまさらApache1.3 PHP4 MySQL4.0 POP3はないでしょう」とのこと。もっともです。
        サブドメインは、ユニークネーム.bgrp.jpというドメインになります。短いし、jpだし、Goodです。
        はっきりいって、他の格安レンタルサーバーと比較しないで加入しても後悔することは少ないでしょう。
        自分もXREAをレンタルする前にブロックグループがあれば、こっちをレンタルしたと思います。
        今現在、格安レンタルサーバーの中では、一番お勧めです。詳しくは、上記バナーをクリックしてご確認を。
      • XREA
        このウェブサイトを運営しているXREAは、年額2,400円で利用できます。
        ときおり、一ヶ月200円で利用できる、と記述したウェブサイト等がありますが、これは間違いです。
        あくまでも、年間払いで2,400円であって、短期利用は、それようの料金が用意されています。
        ま、前払いでやってくれれば、その分安くしますよ、ってことです。ちなみに一ヶ月単体の利用料金は、07年6月25日現在で400円に設定されています。
        この有料プランは、VALUE DOMAINが料金収納を代行?(間違ってたらスミマセン)しているようなので、まずは、VALUE DOMAIN - ユーザー登録をすませてから、XREA - お試し登録 -に登録後、VALUE DOMAINのコントロールパネルでXREAで作成したページ(アカウント)を追加、という流れになります。ちょっと面倒ですが、その分安く利用できるので、ま、仕方ないのかな。
        スペック面でも、容量2ギガ、PHP5対応、SQL-DB使用可(5個)、など十分です。「電話によるユーザーサポート不要で、できるだけ安く運営したい」、という方にはお勧めできます。転送量が上限3ギガなので、人気サイトになると、厳しいかもしれないかな、というのがネックでしょうか。このウェブサイトは人気サイトではないので、まったく問題ないです。

▲ページ先頭へ戻る▲


■PHPのバージョン

PHPは、07年6月25日現在で、バージョン4とバージョン5が平行リリースされています。
ただ、今後PHP6が登場すると、PHP4のバージョンアップは打ち切られると思われますので、特に理由がない限り、PHP5を使用したほうがベターだと思います。
PHP4では使えない便利な関数群もPHP5に用意されている、というのもありますし。特に、ウェブサービスを前提に考えた場合、XMLのパースが簡単に行えるsimplexmlクラス(関数群)がサポートされているPHP5を選らばいない理由は見つからないと思います。
このページの説明もPHP5を前提に記述しています。

▲ページ先頭へ戻る▲


■キャッシュ

「キャッシュ」といっても、お金を借りる方のキャッシングではありません、というよくある文面は置いといて、
ここでいう「キャッシュ」は、データをキャッシュする意味のキャッシュです。スペルも、cacheと異なります。
キャッシュの目的は、ウェブサービス提供者への負荷軽減、データキャッシュによるレスポンスの向上、です。
PHP自体には、キャッシュ機能は標準装備されていないのですが、PEARというライブラリにCache_Liteという簡単に使えるキャッシュ機能があるので、これを使うとよいでしょう。
このウェブサイトでも解説しているので、右側サイドバーのサイトマップから漁ってみてください。

▲ページ先頭へ戻る▲


■ウェブサービスからデータを取得する

ウェブサービスからデータを取得する、ということは、言い換えると、外部サーバーから自分のサーバーへデータを読み込む、ということになります。
PHPでは、file、file_get_contentsがあるので、目的に応じて使い分けるわけですが、後述するsimplexml_load_stringの引数がstringなので、基本的にはfile_get_contentsを使用することになります。

▲ページ先頭へ戻る▲


■XMLのパース

すでに述べたとおり、多くのウェブサービスではXML形式でデータを返してくれます。
PHP5のsimplexml系列の関数群、simplexml_load_file、simplexml_load_stringでXMLを簡単にパース出来ます。
simplexml_load_fileは、あくまでもテスト用と考え、実際にはPERAのCache_Liteとsimplexml_load_stringを組み合わせたキャッシュ機能付きsimplexml_load_fileを自作して、通常運用はキャッシュ機能付き関数を使用する、というのがよいでしょう。
この辺の話しもブログで解説しているので、右側サイドバーのサイトマップから漁ってみてください。

▲ページ先頭へ戻る▲


■Last.fmのウェブサービス

現在提供されているウェブサービスは沢山あるので、サンプルとして使用するウェブサービスの選別には迷うのですが、3大ウェブサービスといわれている、Amazon、Google、Yahooは、どれも登録作業が必要で解説が面倒だなあ、ということもあって、ここでは、ユーザー登録なしで使え、多様なデータを返してくれるLast.fmのウェブサービスをサンプルとして使用します。
このウェブサイトでもLast.fmの記事を書いていますので、興味のある方は参考にしてください。
ウェブサービスの仕様は、Web Services - audioscrobbler -で確認してください。

▲ページ先頭へ戻る▲


■WebAPIとPHPを使ってWebページを自動生成する

ようやく必要な準備が整ったので、簡単なサンプルページを作ってみましょう。
あくまでもサンプルなので、実際に使用する場合は、エラー処理やキャッシュ機能の組み込みが必要ですので、あらかじめご了承ください。
ここでは、前述したLast.fmのウェブサービスを使って、任意のアーティストの人気トラック(曲名)を表示するWebページを自動生成するPHPファイルを作ってみましょう。 まず、Last.fmのウェブサービスから任意のアーティストの人気トラックを取得するには、ArtistData→TopTracksと辿っていくと、
http://ws.audioscrobbler.com/1.0/artist/アーティスト名/toptracks.xml
というリクエストを送ると、該当アーティストの人気トラックのXMLファイルが返信されてくることが分かります。
試しに、アーティスト名のところにUTF-8でURLエンコードしたアーティスト名、URLエンコードが面倒な場合は、「Norah+Jones」として(「」は入力しないこと)、リクエストURLは以下のようになります。これをお使いのウェブブラウザのアドレス入力欄に入力後、Enterを押してください。
http://ws.audioscrobbler.com/1.0/artist/Norah+Jones/toptracks.xml
ブラウザによって、表示は異なるのですが、FirefoxやIE6の場合、XMLソースがそのまま表示されるので、帰ってきたデータが確認できます。
とてもシンプルなXMLファイルなので、初心者にはもってこいです。
simplexml_load_stringでこのXMLファイルを読み込むと、簡単にトラック情報にアクセスできるので、あとは自分のアイディア次第で好きなページを作成するだけです。
それでは作成するプログラムの仕様を以下のように規定したサンプルソースを提示します。
スペック:クエリーとして、artist=アーティスト名で与えられたアーティストのトップトラックを表示します。アーティスト名は、UTF-8でURLエンコードした状態で指定することとします。アーティスト名が未指定の場合は、エラーメッセージを表示します。
これだけです。
<html>
<head>
<title>指定されたアーティストのトップトラックを表示します</title>
</head>
<body>
<?php
if(empty($artist)){ print 'アーティスト名を指定する必要があります<br>'; return; }
$req = 'http://ws.audioscrobbler.com/1.0/artist/' . urlencode($artist) . '/toptracks.xml';
$xml = simplexml_load_file($req);
foreach($xml->track as $t){
 print $t->name . '<br>';
}
?>
</body>
</html>
これで、Last.fmウェブサービスが提供しているデータを動的に表示できるページが作成できます。
実際に動かす場合は、UTF-8で保存してください。
また、キャッシュ処理やエラー処理は省いているので、そのあたりも考慮する必要が出てきます。
実際の動作例は、アーティストリンクを参照してください。実際に使う場合は、このようにフォームなどでUIを組み立て方がユーザビリティが高くなるので、お客さんがつきやすくなります。
なお、アーティストリンクでは、キャッシュを行っていますので、一定時間、同じリクエストに関しては、同じ結果を表示するようになっています。さほど、即時性を持たないデータではこのようにしておくことで、トラフィックを抑えることが必要なのは、前述したキャッシュの項目を見ていただければ明らかだと思います。
上のほうで、「UTF-8でURLエンコード」と書きましたが、UTF-8でファイルを保存しておくことを前提に考えれば、プログラミングの観点から見るとurlencodeをコールするだけですみます。UTF-8以外でファイルを保存した場合は、mb_convert_encodingなどで事前にUTF-8に文字コード変換してからurlencodeに渡す必要があります。また、取得したXMLデータを保存した文字コードに変換する必要もあります。このような手間が必要なことを考えると、ウェブサービスを中心に考えた場合、UTF-8以外で保存するメリットはあまりありません。
各命令については、PHPリファレンスで確認してください。
$xmlにパースされたXMLデータが格納され、$xml->track配列にname,reach,urlが含まれているので、今回はその中から、トラック名であるnameだけを表示しています。
配列処理には、サンプルに挙げたforeachやfor文があるので、用途に合わせて使い分けるとよいでしょう。今回のようにすべてのデータを表示する場合は、foreach文が便利です。

▲ページ先頭へ戻る▲


■コメントなどは・・・

このページに対してのコメントなどは、ブログ、もしくは、ページ一番下の連絡アドレスにどうぞ。
ブログのコメント欄にいただいた方が、詳しい方が見てくれている可能性もあるので、有用な情報が得られるかもしれません。

▲ページ先頭へ戻る▲


■目次の自動生成

初心者向けページという趣旨からすると、飛躍しすぎな気もするのですが、意外と簡単に実現できて便利な、目次の自動生成について説明します。
ウェブページでも目次というのは、重要な要素なのですが、ついついおろそかにしてしまいがちだったりします。コンテンツの内容と目次の内容が同期していないページ、結構ありますよね。閲覧者からすると、ウェブページの信頼度も低下してしまう可能性もあるので、おろそかにはできません。
この面倒な目次の作成もPHPを使えば、自動生成できるのでラクチンです。
まず、仕様を考えてみましょう。
目次に必要なのは、
アンカー名、目次の名称
の二つです。
そこで、以下に該当する文字列を抽出して目次を作成することを考えます。
<a name="anchor_name">■目次の名称</a>
アンカー名がanchor_nameで目次の名称が目次の名称です。
さて、これらの文字列をどうやって取り出すか?ということになるわけですが、
PHPには、文字列検索を行う関数が用意されています。ここでは、preg_matchを使った例を紹介します。
$str = file('filename.php');
foreach($str as $array){
	$pattern = '/<a name="(.*?)">.*?■(.*)<\/a>/';
	$match = preg_match($pattern,$array,$match_array);
	if( $match ) {
		$array_size = count($match_array);
		if( 3 == $array_size && !empty($match_array[1]) && !empty($match_array[2]) ) {
			print '<a href="#' . $match_array[1] . '">' . $match_array[2] . '</a><br>';
		}
	}
}
これで、目次が作成できるので、BODY直下に書き込んでおけば、同じ書式で項目名を作成すれば、自動的に目次にも追加されるので、メンテナンスフリーでラクチンです。
カスタマイズすることで、ul,liなどで親子状態を作ったりすると、さらに詳細な目次も作成できるので、用途に応じて作るとよいでしょう。
まず、strにファイルの内容を読み込み、foreachループで一行ずつ処理していきます。
pattern変数に、このような値を設定しておくと、目的の文字列が取り出せます。ちなみに、正規表現を使って設定しているのですが、正規表現まで説明すると、このページの守備範囲を超えてしまうので、ここでは割愛させていただきます。
正規表現について興味のある方は、Webで検索するか、正規表現に関する書籍をAmazonで検索ページを参考に、読んでみるとよいでしょう。このページでは、Amazonのユーザーレビューも表示されるので、一覧するにはとても便利です。ちなみに、このページもAmazonWebServiceとPHPで自動生成されたページです。
元に戻りますが、
preg_matchの2番目の引数には、検索対象文字列、第3引数には、マッチした場合、その結果を代入する変数を指定しています。条件にマッチした場合は、この変数にマッチした値をセットし、関数はTRUEを返します。マッチ結果を代入する変数には、配列として格納され、配列[0]にはマッチした文字列全体、配列[1]にはアンカー名、配列[2]には目次の名称が入るように、正規表現を作っています。具体的にはpatternの括弧にマッチした文字を代入してくれます。
ということで、その下の条件文でマッチ確認後、配列サイズ==3を確認しています。何で3?と思うかもしれませんが、先ほど説明した配列にどのような形で値が格納されるかを考えれば明らかです。
emptyで確認しているのは、空のアンカーや目次の名称を目次にしても意味がないから、です。
アンカー名と目次の名称が取得できたら、print文でリンクを作成するだけです。
preg_matchだけ分かりにくいと思いますが、リファレンス - preg_matchを参考に勉強してみてください(簡単なサンプルも豊富です)。

▲ページ先頭へ戻る▲


■Web API(PHP)に関連した書籍

(データ提供:Amazon.co.jp)

PHP×WebサービスAPIコネクションズ(,ソフトバンククリエイティブ)

¥ 2,940 在庫あり。
Amazonポイント:¥ 29
レビュー数:4
●概要を知るには良いものの、基本部分がちょっと分かりづらい
様々なWebサービスの概要が書いてあるので、「こんなサービスがあるのか」という発見もあり参考になりました。

ただ、「どのようにパラメータを受け渡して、どのような値が帰ってくるのか」という基本部分が分かりづらく、この部分は本書ではなくホームページで探してしまいました。

また、PHPの基礎的な関数だけで取り出せるデータもあるのに、クラス、ライブラリ、オブジェクトを多用しているなど、PHP初級者やパッケージを利用せず一からプログラムを構築する人には分かりづらい内容です(プログラムを解析すれば分かるという話もありますが)。

評価とは関係ありませんが、PHP5を基本とした内容なので、いまだにPHP4を利用している私などには(ホスティングサーバーなので、自由にバージョンを上げられません…)、ちょっと使えないところもありました。
●マッシュアップ本では一番好き
発売当初に購入して、いろいろと使わせていただいてます。
最近になってマッシュアップを題材にしたPHP関連の書籍が出てきていますが
、その中では一番とっつきやすく参考にしやすいです。
PHP初心者にはわかりずらい部分もありますが、ソースはAPI導入の始めからサイトとして成り立つまで書かれているので実用的だと思います。
●マッシュアップサイトを作る参考に!!
単純に秋元さんのファンだったので、買いました。

S3やA9 OpenSearchなど知らなかったAPIなどもあり、参考になりました。
Webサービス系でいい本がなくて困ってたので重宝しています。

マッシュアップサイトを作る上でのアイデアも掲載されているので
マッシュアップサイトを作ろうと考えている人にオススメですね。

第2段も期待してます(でるのかな?)。
●最新Webサービスのとっかかりに。
本書は2006年末現在、どのようなサイトがどのようなサービスを提供しているかをPHPのPEARパッケージを利用した簡単な例で紹介。
商品説明にあるサイトのほか、del.icio.usやテクノラティも取り上げています。
Webサービスの解説ドキュメントはそのほとんどが英語、あるいは直訳、あるいはそこそこの技術者寄りで、この本のように噛み砕いた説明はあまり出回っていません。

ユーザーインタフェース部分の実装やAPIの詳細な仕様などには触れていませんが、PHPの使い手でなくても、マッシュアップのアイディアを膨らませるのに役立つ内容です。これからWebサービスを使ったプログラミングアイデアを練ろうという方は、ネットを泳ぎ回ってあれこれ情報を探すより、この本に目を通すべきでしょう。

これ1冊だけではWeb API初心者は実装までは持っていけないと思われるので、3000円はちょっと高い。次版に期待し、星3つです。


ファイルメーカー Web パブリッシング FileMaker API for PHP コンプリートガイド(松林 弘治(監訳),アスキー)

¥ 4,179 在庫あり。
Amazonポイント:¥ 41

Warning: Invalid argument supplied for foreach() in /virtual/kommy/public_html/inc/func.php on line 75

■正規表現に関連した書籍

(データ提供:Amazon.co.jp)

詳説 正規表現 第3版(株式会社ロングテール,オライリージャパン)

¥ 5,040 在庫あり。
Amazonポイント:¥ 50
レビュー数:3
●正規表現の次のステップ
本書は非常にマニアックだ。
単に正規表現が使えるようになりたいだけならば、Webで必要な情報は事足りるし、
わざわざこんな分厚い本を引っ張り出してくる必要は無い。
だが、平凡な「単に正規表現が書けるプログラマ」から、
「ちゃんと正規表現が書けるプログラマ」へと飛躍を遂げるのには、本書は大いに役立つ。

その中で最も恩恵を受けるのは次のような読者だろう。
・正規表現を極めたい(特に効率性について)
・仕事柄複数の言語で正規表現を扱う必要がある
・正規表現エンジンの仕組みが知りたい
・ベンチマークの実例を知りたい

これらの全ての要求に対して、本書は十二分に答えてくれる。
しかし、それらは理論的な切り口というよりもむしろ、
実際に手を動かしてみてわかるような発見的なやり方で説明される。
よって、有限オートマトンや正規言語と言った理論まで立ち入りたい向きにとっては
本書は物足りない内容であり、その場合はそちらの専門書を薦める。
あくまで実践の場に立ちたいならば、各種のテーマに対して待ち受ける泥臭い道を、
同じように泥臭く潜り抜けた著者が熱心に導いてくれるだろう。

そこには、そこはかとなく正規表現への愛情すら感じられる。
たかが正規表現、されど正規表現である。
●正規表現を確実にマスターできる
もし、正規表現をマスターしていなかったら、プログラムが書けても一人前とは言えない。そんなプログラマがいるのか?それがゴロゴロいるのである。
この本は現在出版されている正規表現の類書の中で、唯一と言って良いほどの決定版的教科書だと思う。まず、この本なら正規表現が完全にマスター出来ると断言出来る。最初からこの本にしていたらどれだけ計り知れない利益があったことだろう。
この本は正規表現についての素晴らしさを説き、その理解への道筋をきちんと示して抜けるところがない。著者の仕事に感謝の念を禁じ得ない。
●DOSのコマンドのような簡単なものから
DOSのコマンドような簡単なものから、
sed, awkで使うような複雑なものまで、正規表現は強力である。
めったに使わない機能は、覚えていないので、解読するのが困難なことがあります。
可読性という意味で、正規表現を使ってもよい場合と、使わない方がよい場合について、分類するとよいかもしれません。


正規表現ポケットリファレンス (POCKET REFERENCE)(,技術評論社)

¥ 1,974 在庫あり。
Amazonポイント:¥ 19
レビュー数:2
● シンプルでいい
正規表現はネットで似た様なサンプルを改造して使う程度で、あまり憶える気すらおきないレベルの者です。ですので、トラブルでハマると時間がかかるので難儀します。 フクロウ本、〜辞典、〜達人、〜ツボと買い渡りましたが、この本は、読むというよりは、眺めることでサッと対応できるので一番重宝してます。空白が多いのでネットで拾ったサンプルを貼り付けたり、書き込んだりできる点もいいです。
●ポケット版で丁度良かったです
正規表現の基本中の基本ともなるとウェブで沢山の情報が出てきます。
なにも図書を買わなくても…と思うところもありますが、モニタに沢山のウェブブラウザを起動すると思考の整理がつかない。
そんな時に役に立つ1冊と思います。
私はプログラマのように作る側ではなく、管理するための知識さえあれば良いので高額なフクロウ本も不要です。
正規表現の記述を見た際に、「確か…これは…」でスグに手に取れるサイズっても嬉しいところです。
Linuxなんかでは正規表現が多用され、何が書かれているかわからない時にスグに調べられ、普段は邪魔にならない程度の資料としては評価の通りです。


正規表現ハンドブック (Technical Handbook Series)(,ソフトバンククリエイティブ)

¥ 2,289 在庫あり。
Amazonポイント:¥ 22
レビュー数:2
●便利便利
正規表現勉強のため購入しました。
正規表現の基礎知識に始り、「メールアドレスにマッチさせる」、「URLにマッチさせる」等具体的事例が多く参考になりました。
巻末のJava、perl等言語ごとのメタキャラ対応表も便利。
●常に手元に置いておきたいリファレンス
実務でそれほど正規表現を使用することはないが、いざと言うときにはなかなか正確な情報が少ないのが正規表現。

ネット上にも、それらしき情報はあるが、本当に正しいかどうか疑問な場合がある。

本書の前書きにもあるように、内容の正確性を重要視しており、基礎から中級者向けに読み進められ、ケーススタディでは、よくあるパターンが注意点を含めて解説してある。

いざというときに、非常に役立つ良書である。



入門 正規表現 ~検索・置換・テキスト処理に強くなる!(,技術評論社)

¥ 2,079 在庫あり。
Amazonポイント:¥ 20
レビュー数:2
●読みづらい...
内容がいろいろな機能、話題に発散していて、体系化されておらずひどく読みづらいです。「入門」と名を打っていますが、正規表現について体系化されておらず整理されていない、サンプルもパターンだけ、入力文字列だけなど対応付けがきちんとされておらず動かして確認するわけにもいかず、乱文のため難解です。
内容については、「正規表現をスッキリ明快に把握し、理解してもらうために書いた」とありますが、類書のハウツー本とかわりがなかったです。
ハウツー本と割り切るなら他のハウツー本を買った方が良いと思いました。
●regular expression
正規表現は、英語ではregular expressionである。
GREPというコマンドは、Global Regular Expression Printの略であるので、全体の正規表現の検索結果を出力するというものである。
これは、SEDのコマンドで、GとPとの間に正規表現を記述することから来ている。
こういう歴史的な経緯を知っていることも、何かの役に立つかもしれない。

本書にも、いろいろな話題といろいろなハウツーを書いている。
利用したい状況によって、参考になる場合と、grep, sedの個別のコマンドの本を読んだ方がよい場合もあるかもしれない。


正規表現辞典 (Desktop reference)(,翔泳社)

¥ 3,129 在庫あり。
Amazonポイント:¥ 31
レビュー数:1
●非常に役に立ちます
僕は仕事で主にPHP/JavaScriptを書くのですが、元々正規表現が苦手ってこともあって、入力値のチェック(validate)などはネットから拾ってきた正規表現をそのまま貼り付けて使ってました。
今まではこれで事足りてたのですが、仕事の都合で複雑な正規表現を書かなければならなくなり急いで書店に走りました。
正規表現の書籍は他にも何冊かありましたが、色々吟味した結果この書籍を購入しました。

まず大きな購入動機として、PHP等の環境で使える/使えないが明示的だった点があげられます。これだけで無駄に悩む時間がかなり割愛される。
そして「メールアドレスにマッチさせたい」などの具体例の数を比較的に少なくして、その名の通り「リファレンス色」が高い点です。

他の書籍は具体例ばかりが列挙されておりましたが、こんなのはネットに腐るほどサンプルがあるわけで、この書籍は1つ1つの命令について丁寧に解説してたのが良かったです。

ネット上にサンプルが無いような複雑な正規表現が必要になった場合、最適な1冊だと思います。


詳説 正規表現 第2版(田和 勝,オライリー・ジャパン)


レビュー数:5
●内容は大満足だけど高いです
「正規表現を使えば、データを制御し、思うがままに操ることができる。
正規表現をマスターすることは、データを支配することに他ならない。」
これは本書の筆者の言葉なのですが、正規表現の核心を突いた名言だと思います。
本書はデータを支配する事を目的とした書籍です。

正規表現といえば一昔前であればPerlというイメージがありましたが、
現在多く利用されている言語であるJavaや.NETでも正規表現がサポートされており、
正規表現の利用が身近になりました。
 身近になった反面、単にネット上からシンタックスを調べて
使っている人も多いかと思いますが落とし穴があります。
プログラムで同じ処理をさせる為の方法はいくつかある場合があり、
その手法によって時間に大きな差が出る事があるのは既知かと思います。
実は同様の事が正規表現にも言え手法によって処理時間に差が出ます。
シンタックスしか知らない為の問題なのです。
 正規表現は簡単なようで実は奥が深くも身に着ければ大変強力なスキルになりえます。
本書ではその為の正規表現の処理メカニズムを学習することができ、
正規表現の実践技法、工夫と学んだ知識を昇華させて行くことができます。
また、後半の3章ではPerl、Java、.NETに章が割り振られ詳しく説明されていますので、
各言語毎のスキルを身につけることができると思います。
●噛めば噛むほど
正規表現なんて、シンタックスを覚えて、そこそこ使えればそれでいい、
と思っている人が多いと思う。自分もそうだった。

英文法を理屈抜きで公式のように覚えさせられたことは誰でも経験があるが、
実はほとんどの文法には、なぜそうなるのか、という理由がある。
それと同じように正規表現にも、なぜそういう動作をするのか、という理由がある。

この本はそれを教えてくれる。

成人した人間の脳というのは、まる覚えが効きにくい。
シンタックスだけ知っていればよいという方でも、中身の動作を知ったほうが、
かえって記憶に定着するのではないだろうか。

急がば回れ、である。
●正規表現の仕組みが分かります
正規表現の内部処理や、挙動をとても分かりやすい口調で
教えてくれます。
この手の本は普通、”そうなるもんだ”という押し付けが多いのですが、この本は読み手に本当の理解をしてもらいたいという意図を感じ取れます。

本格的に本当のスキルとして正規表現を使ってゆきたいというひとにはお勧めです
●正規表現を学びたい人が買う第一冊目に最適
インターネット上で正規表現命令を無料で調べることはできるが、本書では、正規表現の歴史から、動作条件の違い、プログラム言語による動作結果の差異などまで言及されている。

本書が最も優れているのは、正規表現がどのような思想の下で動作しているのか、その結果どのような正規表現命令を用いれば、求める結果が得られるのかを丁寧に解説してくれている。
そのため、丁寧に本書を読まないと、途中で本書の内容を理解できなくなってしまう。

最近読んだコンピューター関連の書籍の中で、もっとも読み終えたページを読み返す回数が多かった。

正規表現のおかげで、プログラムの条件文が減ったり、ルーティンワークの負担が減ったりして、時間や資源をより有効に使えるようになった。
Perlを利用しない人でも、Perl互換の正規表現は非常に便利なので、本書を読んで損はしない。

●著者の努力に脱帽
正規表現をここまで楽しく読ませる本はあるのでしょうか?単なるリファレンスではなく、小説(詳説ではなく)を読むような感じでぐいぐい引き込まれます。第1版と異なり、Javaや.NETなどの話題も取り上げられていますが、やはり中心はPerlですね。しかしPerlに関する基本的な文法の説明もなされているのでPerl使いじゃない人も楽しめるんじゃないでしょうか。時々出題されるクイズも気に入りました。クイズだけの単行本も出して欲しいぐらいです。唯一残念なのがリファレンスカードが付いていないことでしょうか。取り外しができるリファレンスがあれば便利なんですけどね。


正規表現ケーススタディブック(,毎日コミュニケーションズ)


レビュー数:2
●中身の濃い本です
最近はいろんな言語やエディタで正規表現をサポートするようになり、実例集が一冊欲しいなーと思い購入。本書も「0.概要」でPerl、PHP、Javaなどそれぞれの言語での正規表現について簡単に解説してあります。総ページ数191ページと、手に取った感じ実例集としては薄め(ボリュームがない)に感じてしまいますが、ところがどっこい。各例とも単なる表現例にとどまらず、その組み立て方を順に解説してあり、自前で正規表現を考えなければならない場合の良い参考になります。見た目より中身の濃い本です。
●正規表現のリファレンスに最適!
grepをはじめ、検索、置換処理を行うときに正規表現(regexp)を知っていると非常に便利です。この本は1章でメタ文字に関する説明を始め、残りでは非常によく使いそうな検索・置換パターンの正規表現例を記載してあります。

IPアドレス、メールアドレス、日付などのものから、16進数、C言語のコメントなどすぐに使用したい例が多く載っています。各章ごとにカテゴリ分けされているし、ページ数もさほどではないので見つけたい処理はすぐに見つけられます。
1章で一通りのメタ文字を説明し、各例でどうしてこういう表現になるか解説があるので、応用するのは誰にでも簡単でしょう。

日常的な事務仕事からプログラミングをする人まで幅広く読めて非常に分かりやすい内容です。



詳説 正規表現(Jeffrey E.F. Friedl,オライリー・ジャパン)


レビュー数:3
●正規表現美しいものです。
この本を読む前に、まー、正規表現なんかメタ記号をちょっと見れば使えるじゃないかなと思っていました。
けど、この本を拝見しましたら、正規表現の芸術的なところに感心しました。自分で作ったものはこんなに美しくなりたい。

プログラムの開発は何年経ったら、重複のものを作るのにもうあきました。けど、この本を読んだら、なんか変わりました。どんなものも磨ければ磨くほど美しくなる。今、そう思って、どんな仕事でも飽きなくやっています。

●正規表現を極めましょう
「正規表現の使い方は一通り知ってるけどもっと細かく知りたいなぁ」と思ってる方に最適だと思います。"分からない所を調べる"といったような使い方には向いていませんが、じっくり読んで使えそうなところをチェックしておくだけでスキルアップに繋がる事は間違いないでしょう。
●Perlプログラマには実用的
正規表現は、主にUnix環境においてユーザサイド、 プログラマサイドの両方で広くつかわれている テクニックである。しかし一方、正規表現は本来の 表現力に対して、かなり限定された 用途でしか使われていないのが現状である。 そこで正規表現を、より深く掘り下げて理解する のにお薦めなのが本書である。特に Perl の正規 表現についてかなりのページが割かれているので、 正規表現を頻繁につかっているものの、実行の 効率が気になっているような Perl プログラマは、 ぜひとも本書を読むべきである。Perl の正規表現 だけでなく、その他のUnix ツールに使わ れている正規表現についても網羅している。


正規表現とテキスト・マイニング(,明石書店)

¥ 2,940 通常2~5週間以内に発送
Amazonポイント:¥ 29
レビュー数:2
●特許翻訳の専門家
正規表現(regular expression)という技術は、C言語の専売特許ではなく、
英語の文字列検索の基本技術である。
正規表現は、grepというコマンドで提供しているOSがある。
ないOSでも、該当するOSのフリーソフトとして出ていることがある。

grepは
global regular expression print
の略で、正規表現(regular expression)で全体(global)を検索して表示(print)する便利な道具である。
grepの出力はKWIC(key word in context)といって、該当する行とともに、
検索語を表示するという検索技術の基本形式を取るものである。
sedというエディタや、awk, perlというプログラミングは、grep同様C言語で書かれており、同じ正規表現の検索が可能である。

著者らが開発した特許翻訳システム(PAT TRANSER)の原型は、
sed, awk, perlを駆使したものが基本系としてあり、
多くの特許文書をこれらの道具を使って料理してきた経験がある。

そのため、集計、解析する前に、検索コマンドを投入した時点で、
プログラマであれば統計処理もすませることができるため、
自分でプログラミング言語を少しでも触ってみると、
それまで表計算ソフトでやっていたことが、表計算ソフトを使わなくてもできることに驚くかもしれない。

大量のデータの処理は表計算ソフトではできないことがある。プログラミング言語で記述すると、複雑な制約条件を設定することが可能になる。
表計算ソフトでは十分にできなかったことがある人、
表計算ソフトでしか統計処理はできないと思っている人には、
自分でプログラムを書いてみるよい機会かもしれない。

データ処理は、複数の方法をとって、その結果が同じであるかどうかを検証することは必須である。
合計であれば、縦横の合計が同じになる方法も一つであるため、一つの検証をしたことなる。
分析作業で、しばしばソフトウェアの入力、設定、処理間違いに気がつかずに結論を出してしまうことがある。
責任ある結果を出そうとする人には、結果を2つの側面から確認するプログラムを書き始めたり、
誰かに検証してもらうための仕様を明確にする第一歩になるかもしれない。
●テキストマイニングの本?
本書は「正規表現(検索対象となる文字列を、記号を用いて一般式で表現すること)」というAWKやPerlなどのプログラミングではお馴染みの手法を使って、文章データの検索をおこなう方法について書かれた本だ。

通常、テキスト・マイニングといえば、(1)文章データからの情報検索→(2)集計・解析→(3)可視化、という一連の作業を指すことが多い。本書のほとんどは、(1)を正規表現を使って進める方法について書かれているので、一連のプロセス全部を期待すると肩透かしをくらうことになる。Excelを使った集計についての記述は少しあるが、林氏の『Excelで学ぶテキストマイニング入門』のほうが詳しい。

したがって本書のタイトルは、『正規表現による文章検索』などとする方が妥当だと思う。このようなタイトルであれば、本書は具体的な手法について非常に丁寧に書かれていて、自然言語検索でも正規表現が有効なことを十二分に示す好著だ。

ちなみに、このような内容のために、本書は実務には役立てにくいものとなっている。マーケティングなどに携わる実務家は、内容を確認してから購入したほうがよいだろう。



正規表現入門 (I・O BOOKS)(,工学社)

¥ 1,995 在庫あり。
Amazonポイント:¥ 19

Warning: Invalid argument supplied for foreach() in /virtual/kommy/public_html/inc/func.php on line 75

▲ページ先頭へ戻る▲





■お知らせと連絡先

このウェブサイトで取り上げて欲しい話題や分かりにくい点などありましたら、
以下のメールアドレス宛にメッセージをいただければ、参考にさせていただきます。

メールアドレスは、work_komiあっとまーくyahoo.co.jpです。
(「あっとまーく」は、半角英数のあっとまーくに変換してね。)

また、XBOXをお使いの方は、ゲーマータグ(akbox)にてフレンドリクエストを受け付けています。