▲ゴト技top| 第11章 1| 2| 3| 4| 5| 6| 7| 8| 9| |
[第11章●そろそろ正規表現はいかがですか] 1… 悲しき高野豆腐 |
[2004.01.22登録][2004.01.23更新] |
石田豊 |
何故にもっと高野豆腐が脚光を浴びないのか、私にはよくわかりません。昨今の高野豆腐は昔みたいに戻さなくてもいいし、ハナっから一口大に切り分けられてたりします。美食家の方々には論外でありましょうが、添付のだしの素を水で溶かし、沸かしたところに乾燥したままの高野豆腐キューブを投入するだけ。インスタントラーメンならふきこぼれに注意せねばなりませんし、煮すぎると伸びて不味くなりますが、高野豆腐にはそんな心配はまったく無用。鍋を使うのがいやなら水+だしの素+キューブを容器にいれ、電子レンジで9分という安直路線も選択できます。で、そこそこおいしい。その上、非常に安価。サヤエンドウなどを投入すれば小粋な一皿になり上がるし、突然の来客で、まあまあイッパイなんて時にも、即席麺程度の時間と手間で供することができます。 こんな逸品が、なぜに輿論の絶賛を浴びないのか、私は不思議でならない。 もちろん、これはまったく閑却されているわけではなく、スーパーの乾物売り場でも複数ブランドが常備されているところをみると、そこそこには売れているのでありましょう。で、ありましょうが、それにしても、現在の彼の身分地位は、他人事ながら、惜しむにあまりあるものがあります。無念です。もっと誉めたれや、と。 これとまったく同じ感想を常々抱いている対象がデジタル界にもあります。なんでもっと普及せんのか。なんでもっと称賛されんのか。 それが「正規表現」です。 ま、もって生まれた名前の生硬さが災いしているのかもしれません。 「正規表現」という名前の製品があるわけでもなく、特定の製品のジャンルを示している言葉でもありません。言って見れば「正規表現」というのはいろんなソフトの持っているある種の「機能」を総称したものです。「拡張された検索・置換システム」のことである、と定義してもいいでしょう。 検索・置換機能はひろく使われています。たとえば書き上げた原稿の全編にわたって「富士フィルム」と書いていた、と。これはマチガイでホントは「富士フイルム」である、と。もっと正確に書くなら「富士写真フイルム株式会社」である、と。こういう場合、検索・置換機能は無敵です。どんな長い原稿であろうと、[検索・置換]富士フィルム→富士フイルム、ないし→富士写真フイルム株式会社、で一発です。おれは斉藤ではなく斎藤だぜ、と文句をつけられても、これまた一発。 ワープロソフトで文章を綴ることのメリットは、筆圧の高さに悩むこともないとか、加除修正がラクであるとか、再利用が可能であるとか、漢字を忘れててもほぼ大丈夫とか、通信でスコンと送ることができるとかがあるでしょうけど、この「検索・置換が可能である」ってのも忘れちゃならない要素でしょう。 だからこそ、広く普及している。私の周囲を見回しても、多くの人たちが、当たり前のように検索・置換を駆使しています。 しかし、この検索・置換機能を使えば使うほど、その「短慮さ」とか「頑迷さ」が鼻に付いてきます。そんなことくらい常識でわかるやろ。ちょっとは自分で考えろ。と、言いたくなるようなマヌケな結果を返してくることがなきにしもあらず。 たとえば、先に引いた「富士フイルム」の例でいえば、こんな感じです。文中で終始一貫「富士フィルム」と記述していれば何の問題もありません。先に述べたように「富士フィルム→富士写真フイルム株式会社」という置換を行えばよろしい。しかし書き手が混乱していて、富士フィルム、富士フィルム株式会社、富士写真フィルム、富士写真フィルム株式会社、富士フイルム、富士写真フイルム、富士写真フイルム株式会社という多種多様な表記が混在しちゃっていた場合は、頑迷短慮な検索・置換機能を不用意に使うと、とんでもない結果になってしまいます。富士フィルム→富士フイルム株式会社という置換を行うと、文中には「富士フイルム株式会社株式会社」なんてのが出てくるし、「富士写真フィルム」は依然として残ったままになってしまいます。 これを回避するためには、何度も何度も置換を繰り返すか、「富士」で検索して、出現ごとに目視で確認せねばなりません。なんのためのデジタルか、ってことになってしまう。ち、常識で考えたらわかりそうなもんだけどな、と毒づきたくなる。 正規表現はこうした嘆息から発生した「道具」です。この場合は 富士(写真)?フ[ィイ]ルム(株式会社)? → 富士写真フイルム株式会社 という書き方でまとめて面倒をみましょう、というのが正規表現を使った検索・置換なのです(注:詳しくは後述するが、正規表現にはさまざまなバリエーションがあり、「正規表現が使用可能」となっているソフトのすべてでこの書き方でいけるわけではない。この書き方はたとえばMacの「mi」では可、「Jedit」では不可である。またWindowsでは「K2Editor」で可。)。 しかし、こういう呪文のような検索表現を書くと、中には「引いて」しまう人もあるかもしれません。いきなりこの表現を見せられると「呪文感」が強いのですが、正規表現はもともと非常にシンプルな論理の積み重なりにすぎませんから、数時間程度の学習で、悉皆マスターが可能です。 ちなみに上の検索表現は、「富士」という文字列があって、それに続いて「写真」の0回または1回の繰り返し(つまり「写真」があってもなくてもヒット)、次に「フ」、続いて「ィあるいはイ」、「ルム」が来て「株式会社」の0回または1回の繰り返しが来る、と「読み下す」ことができます。 これで先ほど列記したあらゆるケースの表現のブレが、すべて「富士フイルム株式会社」に統一されます。 これで正規表現のアドバンテージを納得されたでしょうか? まだ? では、もひとつ例を上げましょう。 単行本のための原稿を書いた、と。その中で「Chapter14」というような表現を用いた、と。そのため文中では「この公式はChapter5でも述べたように」といった書き方が頻出している、と。編集者に渡したら「粋がるんじゃないよ。第ナン章で行け」と怒られた、と。言われてみてナットクもした、と。しかし、いっぱいあるぞ、どうする? これは従前の検索・置換では、なかなかうまく行かないのは明らかです。Chapter1→第1章、Chapter2→第2章という具合に、章の数だけ繰り返す必要があるし、その場合でも、行う順番をうっかり昇順でやると、「Chapter14」が「第1章4」に化けちゃう。 これも正規表現なら一発で、 Chapter([0-9]+) → 第\1章 とやるだけで、文中数千数万回出現しているChapterナントカが全部第ナン章に置き換えられます(K2Editorの場合。miでは\1のところが$1となる。ただし+は半角にする)。 もひとついきましょう。 長文のレポートがある、と。それをこのたびカイシャのWebページで公開することになった、と。ついてはWeb担当から、「行頭の1文字落し(具体的には段落の最初に全角スペース1コを置いて字下げを行っている)を取ってください。段落間は1行の空白を入れてください」なんて要求を突きつけられた、と。ち、この忙しいのに。んなことおまえがやれよ、と言いたいけど、Web担当ってのは他ならぬ自分であった、と。 これなんかも、 ^■ → \r でOK(ただし■は全角スペースだと思ってください)。 いいでしょ。なかなか。 そこで、この「章」では、正規表現の基礎(だけで十分)を丁寧にご伝授つかまつろう、という目論見。 で、先走って言っておくと、正規表現をマスターすることは、「あした役立つシゴトの武器」を手にすることにつながるのみならず、「シゴトに役立つプログラム言語のラクラク習得」に直結する、という壮大な見通しがたつんですね。 ということで、以降、次回。 |
この記事は
|
お読みになっての印象を5段階評価のボタンを選び「投票」ボタンをクリックしてください。 |
投票の集計 |
投票[ 25 ]人、平均面白度[ 4.6 ] ※「投票」は24時間以内に反映されます※ |
石田 豊さんより [2004.01.23] |
*無題* ____ Chapter→章、字下げ→改行の正規表現の置換例の意味がわからない。もっと詳しく説明してもらわんと、というご指摘をいただいたんです。もっともだと思います。 具体的にはおってちゃんと説明しますので、現時点では、通常の検索置換でできない作業が一発で実現できるのだ、くらいに思っていていただくといいと思います。 しばらくお待ちを。(石田) |
くりすたるさんより [2005-10-25] |
毎日食べてます高野豆腐 さらりと読んでみました。 貧乏の私にはタンパク質とカルシウムをとる食材として この半年間、毎日高野豆腐を食べてます。 そろそろアレンジ料理に挑戦しようと思ってます。 密かなマイブームです。 いつか世界中に広まる食材に違いない・・・、と 前向きに考えてます。 |
ご意見をお聞かせください |
|
←デジタル/シゴト/技術topへもどる | page top ↑ |
▲ゴト技top| 第11章 1| 2| 3| 4| 5| 6| 7| 8| 9| |
|ポット出版
|ず・ぼん全文記事|石田豊が使い倒すARENAメール術・補遺|ちんまん単語DB| |
|
|