2005年03月26日

p正規表現と小人

正規表現については
@ITの 記事の正規表現とはという部分や、
正規表現の実装については正規表現メモなどを参照。
Javaの場合java.util.regex#Patternを見てもらえるといいかと思われる。

正規表現に興味のある方は全てを読むと幸せになれない。
つまらない前置きを読むと私という人物像が美化されて貴方の心に創造される。
読まずに閉じると呪詛の言葉が聞こえてくる危険性がある。

上記呪いごとを心の片隅に読むことを強要しない。

某所某駅前の本屋は9時閉店。
昨日も一昨日、一昨昨日に引き続き閉店に間に合わず11時までやっている某所の本屋を覗いてみた。
プログラミング関連の書籍が見たかったのだけれど、そこでは曖昧な分類で雑然と棚に並べられている。
非常に探しづらい。
しかもろくな種類もない(アプリのハウツーは探しやすかったが)。
そしてここを駄目な本屋として認定した。

一昨昨日に行った渋谷の啓文堂書店(井の頭線西口徒歩0分)にやってきた。
先日来たときはオライリー関連にごっそりと抜き出したような後(といっても3~4冊)があり、目的のものがあったかもしれないという期待値3で寄ったわけだ。
まずはコーディングに役立ちそうなものを一昨昨日と同様に探してみる。
すると結城浩の『プログラマの数学』なる本を見つけた。
論理的思考さね、うんうん。と思い、買おうと決めて目的のPythonの入門書(ネットで調べながらやる時間がもったいない)を例のオライリーの棚で探すと先日も残っていたPythonクイックリファレンス(とても高価)がおいてある。
もちろん入門書ではないのでパスだ。
6千円以上するし。
先日ちょうど抜けていた場所には右隣のものが詰められており、右のほうに結構厚めの『初めてのPython 第2版』を発見。
一応価格(普通に高い)も確かめつつ次の獲物を物色し始める。
これまた困ったことにオライリーの『詳説 正規表現 第2版』というちょっと欲しかった正規表現関連の本があるじゃないですかー。
値段は言わずもがな、これも普通に高い。
2冊で一万超えがなんじゃーということで、最初に見つけた『プログラマの数学』は諦めた。
というか手持ちが足りなかったorz。

仕事でも趣味でもものすごい威力を発揮してくれる正規表現万歳なのだけれど読み方がわからないものがある。
「regex」だ。(regexpとかも)
レゲック?レゲックス?リゲック?もしかしてリゲ?
誰か教えてくれると感謝という2文字が私から発せられる。
受け取りたい方は教えてくれればいくらでも献上しよう。

『詳解 正規表現 第2版』を少し読んだ結果なぁるほど!と思うことがビシバシでてくる。(ちなみに本屋では目次を見ただけ)
比較対象がない(わからない)ので一概にいい本とは言い切れないまでも十分役に立つ、否とても役に立つ。
値段は高いけれど自力で調べながらやるよりも時間的にも短くなるし、リファレンスとしても使えるから損ではないと思う。
落とし穴なども書かれている。

今まではPerl5互換の正規表現などという表現をネットで見かけていたのだが、Perl独自の正規表現(特殊)の互換だと思い込んでいた。しかしそれは違っているらしい。
逆に言えば元祖がPerlみたいな位置づけになっているようだ。
CGIなどでよく使われるPerlであるが、記述が難解(初心者にはとてもわかりづらい)で保守性が低い(何が書いてあるかわかりづらい)という先入観が先行していたためそう思い込んでいた。
そもそもPerlは「CGI専用のスクリプト言語」と思っている人がかなり多そうだ。
私も昔はそう思っていたし。
LINUXなどのシェルを使ったことのある人ならCGI専用とは思わないんだけどね。

この本にはPerl以外にJava、.NETの章が個別に用意されている(正規表現の解説は言語やスクリプトを知らなくても読める)。
まだ殆ど読んでいないのだが、Javaでいえば正規表現パッケージでサポートしているメタ文字や表現(できること)が表で書かれている。
パッケージの特性なども述べられているっぽいので、用途に合わせて使うのに便利そうだ。
実装についても書いてあるので非常にわかりやすい(と思う) 。
.NETはやったことがないのでまだ開いてもいない。

トレンドに乗り遅れた貴方や、トラックバックを使ったことがない貴方にはとても有用な本であると思われるが、
駄目な上司にグチグチ言われ、ふてくされている貴方には猫に小判である。

『初めてのPython 第2版』についてはまだ開いてもいないためさっぱりだ。
いい本であることをここに願う。

mixiでも書いたのは秘密です。

投稿者 ぴえる : 2005年03月26日 15:29 | トラックバック
コメント
コメントする









名前、アドレスを登録しますか?